2009-10-04 28 views
0

我有一個應用程序,其中的指令說,它不適用於具有多個字段的聚集索引。 無法抗拒測試,這是真的。如果我添加2個字段的聚集索引,該應用會陷入一些無盡的lopp。代碼與聚集索引不起作用

我認爲索引是數據庫內部的東西,不影響應用程序。你如何編寫在聚集索引不起作用的sql?

該應用正在使用sql server 2005

+0

沒有看到代碼,這是很難回答。除非有索引提示,否則查詢不應該關心(對於結果)哪些索引存在 – GilaMonster 2009-10-04 12:05:32

回答

1

它是聚合索引還是主複合鍵?儘管一個是域關係(主鍵),另一個(聚集索引)是實現細節,但它們在SQL Server中有時被視爲是自治的。

某些ORM不能很好地處理複合主鍵。

數據庫是否啓用了定期維護計劃?你有沒有手動運行DBCC CHECKDB

1

這可能表示應用程序使用有關表上的索引的元數據來動態創建代碼 - 例如,我擁有的審計觸發器生成腳本需要單列主鍵。但是,這當然與聚集索引不同。

這可能不值得進一步調查,因爲它在任何應用程序中都有記錄的限制,但是如果需要對此進行反向工程,則可以使用分析器查看此循環中發生了什麼。

+0

不需要調查它。只是好奇,如果這是我需要在我自己的應用程序中測試的東西。我理解你的答案,因爲必須做一些非常特殊的事情才能做到這一點。 – adrianm 2009-10-06 13:24:14

+0

不要說它不擔心我,但通常與第三方應用程序,你不會總是把它們扔掉,無論它們是多麼古怪和痛苦。 – 2009-10-06 13:44:21