これはクエリではありません。 SQLコンパクト・データベース・ファイルの破損の問題をほぼ完全に成功させるためのソリューションの概要です。 SQLCEの破損は非常に一般的な問題です。私たちはStackOverflowの以前の記事、そしてこの記事から多大な助けを受けました。SQL Server Compact Editionデータベースファイルの破損を解決します。
私たちの製品は、3層アーキテクチャで、Windowsサービスとして動作しているサーバーが.Net Remotingによってリッチクライアントに接続されています。私たちの製品は2006年からSQLCEを使用しています。我々はv3.1からv3.5に、そして現在v4.0に移行しました。非常に特殊な要件のためにカスタムORマッピングツールが用意されています。私たちはv3.1では限られた問題に直面してきましたが、v3.5とv4.0ではさらに問題がありました。
最初はv3.5でSqlCeEngine.Repair
を実装しました。しかし、破損したデータだけを削除し、安定したdbを再作成しようとします。影響を受けたテーブルの外部キーが失われていることがわかりました。私たちはすぐにこれをやめなければなりませんでした。ユーザーにdb破損について通知し、最後のバックアップを復元し始めました。これは一時的な救済のみを提供しました。腐敗の問題はまだ立っていた。
今年はv4.0を採用しました。しかし、このアプリケーションでは、データベース呼び出しの数が大幅に増加したいくつかの新機能も導入されました。 v4.0はうまく始まりましたが、ソフトウェア使用量が増えたときに問題を提起し始めました。アプリケーションの実行中に発生した破損は、Windowsのクラッシュ、異常なシャットダウン、ディスクの問題のいずれによっても引き起こされませんでした。データベースが破損しました。
次のポストは、私たちがこの問題のために考案された解決策を説明します。
あなたは問題をより詳細に記述してから解決策を答えに移すことができますか?ありがとう。 –