現在、サーバーDB、および.net 3.5 WindowsベースのWPFアプリケーションで、さまざまな双方向同期dbs(Syncframework 2.1)でSQL Server CE 3.5を使用しています。しかし、アプリケーションのパフォーマンスが低下し、定期的に新しいローカルSDFを再生成する必要があります。そしてそのようにすれば、パフォーマンスが目に見える改善が見られ、60日後以降も同様のことが起こります。SQL Server CE 3.5パフォーマンスの問題
設定でトレースを有効にしたとき、以下の例外がトレースファイルに継続的に記録されていることがわかりました。私たちのコードでは、メソッド呼び出し 'SetTableSentAnchor'しか表示されません。その後、他のメソッドはどのように呼び出されますか?この例外はどのように処理できますか?
__sysTxCommitSequence:System.InvalidOperationException:保持クリーンアップシーケンスが無効です。指定された入力範囲については、トランザクションテーブルの履歴をクリーンアップする前に、トーンストーンテーブルをクリーンアップします。 System.Data.SqlServerCe.SqlCeChangeTracking.CheckIfDataIsPresentInTombstone(Int64のretentionValue、PurgeTypeパラメータ・タイプ)でSystem.Data.SqlServerCe.SqlCeChangeTracking.ProcessResultsで
(のInt32 HR)
System.Data.SqlServerCe.SqlCeChangeTracking.PurgeTransactionSequenceData(PurgeTypeパラメータ・タイプでMicrosoft.Synchronization.Data.SqlServerCe.SqlCeClientSyncProvider.SetTableSentAnchorで、Int64のretentionValue)
(文字列tableNameの、SyncAnchorアンカー)が
また、私たちは以下のように、60のように設定RetentionInDaysの設定を見てきました。これに影響はありますか?
[ConfigurationProperty("clientRetentionInDays", DefaultValue = 60, IsRequired = false)]**
現在のところ、コードにパージ方法はありません。そこでSqlCeChangeTracking
クラスのPurgeTombstoneTableData
メソッドを使用して、システムテーブルのTombstonetable
データをクリーンアップしようとしました(_sysOCSDeletedRows
)。ただし、例外が発生したため、失敗しました。
変更履歴の追跡操作はシステムテーブルでは許可されていません。 [テーブル名= __sysOCSDeletedRowsは]
上記に加えて、我々はまた、以下のコードと同様SqlSyncStoreMetadataCleanup.PerformCleanup
方法を試みました。しかし、システムテーブルに変更トラッキング操作が許可されていないというエラーが表示されます。
https://msdn.microsoft.com/en-us/library/ee617373(v=SQL.110).aspx
SqlSyncStoreMetadataCleanup metadataCleanup = new SqlSyncStoreMetadataCleanup(serverConn);
bool cleanupSuccessful;
metadataCleanup.RetentionInDays = 7;
cleanupSuccessful = metadataCleanup.PerformCleanup();
質問:
Tombstonetableエントリをクリーンアップしながら、どのように我々は、この例外を処理することができますか?
Tombstonetableが格納されている他のテーブルは何ですか?
再生の60日後にSDFでこのパフォーマンスの問題を克服するにはどうすればよいですか?
その他のベストプラクティスにはどのようなものがありますか?
メタデータ(PerformCleanup)を正常にクリーンアップする方法と、クリーンアップ後に検証するテーブルについて教えてください。
ありがとうございます。
よろしく、 Sundar。
正確なSQL CEのビルドバージョンを使用していますか? – ErikEJ
ありがとうErikEJ、私たちはSQL CE 3.5 SP2を使用しています。製品バージョンは3.5.8080.0です。 – Sundar
こんにちはErikEJ、あなたの入力を歓迎します。 – Sundar