アプリで断続的に、SQL CE からスローされる LockTimeoutExceptions に遭遇します。最近、3.5 SP 1 にアップグレードしました。それらの多くはなくなったようですが、まだ時々見られます。私たちのコード (マルチスレッド) のバグであることは確かですが、正確に突き止めることはできませんでした。この問題をデバッグするための良いテクニックはありますか? 例外は次のように記録されます (これらの例外のスタック トレースはありません)。
SQL Server Compact がロックの待機中にタイムアウトしました。デフォルトのロック時間は、デバイスで 2000 ミリ秒、デスクトップで 5000 ミリ秒です。デフォルトのロック タイムアウトは、接続文字列で ssce: default lock timeout プロパティを使用して増やすことができます。[セッション ID = 6、スレッド ID = 7856、プロセス ID = 10116、テーブル名 = 製品、競合タイプ = s ロック (x ブロック)、リソース = DDL]
私たちのデータベースは読み取り負荷が高いですが、書き込みはほとんどありません。必要な場所はすべて保護されていると思います。
編集: SQL CE は既に自動的に NOLOCK を使用していますhttp://msdn.microsoft.com/en-us/library/ms172398(sql.90).aspx