我正在使用SQL Server CE 4.0,並且越來越差DELETE
查詢性能。SQL Server CE刪除性能
我的表格中有300,000行。
我的查詢是:
DELETE from tableX
where columnName1 = '<some text>' AND columnName2 = '<some other text>'
我使用的2場columnName1和columnName2一個非聚集索引。
我注意到,當要刪除的行數很少(比如< 2000)時,索引可以幫助2-3倍的性能。但是,當要刪除的行數較大(比如> 15000)時,索引根本沒有任何幫助。
我對這種行爲的理論是,當行數很大時,索引維護正在消除使用索引(索引查找而不是表掃描)所實現的增益。它是否正確?
不幸的是,我不能擺脫索引,因爲它顯着有助於非變異查詢性能。
另外,我還能做些什麼來提高> 15,000行的刪除性能?
我在Windows 7(32位)上使用SQL Server CE 4.0。
我的應用程序是用C++編寫的,並使用OLE DB接口來操作數據庫。
謝謝。我已經考慮過你的批處理想法,但是如果我不需要的話,不想觸摸代碼。現在看來我必須(嘆氣)。 – rohitsan
此外,15000行刪除需要1-2秒。這聽起來合理嗎? – rohitsan
1-2秒刪除15,000行肯定不會聽起來像一個「問題」... –