2009-11-15 72 views
2

我希望能夠使用實體框架相當快地搜索表格,比方說,如果我有聯繫人表格,JobsToDo表格和鏈接兩個表格的矩陣表,例如Contacts_JobsToDo_Mtx和I在Contacts_JobsToDo_Mtx表中指定兩個外鍵,如果我想搜索這個Mtx表,是否需要在兩個外鍵上指定一個索引?或者由於它們是兩個外鍵,它們是否被認爲是索引的呢?實體框架能夠快速搜索Mtx表而不必指定兩個鍵上的索引?謝謝!實體框架使用索引和外鍵

回答

1

取決於你有的數據庫後端,但通常(從我的SQL Server體驗),沒有。僅僅使用實體框架並不會奇蹟般地讓你的SQL Server限制(或者提高速度的潛力!)消失。

如果底層數據庫是廢話,EF性能將是廢話。您的數據庫需要保持良好狀態 - 只需將EF放在上面不會使性能問題突然消失。

所以我想你仍然需要投入一些智慧來確保你獲得適當的指數,以使你的系統運行良好。 EF只能和底層數據庫一樣好......

1

實體框架1與創建模式或將外鍵添加到「矩陣」(通常稱爲多對多表)無關。 Entity Framwork 4.0可以爲你創建這些表格,並且將具有所需的鍵和索引。

索引是爲任何主鍵自動創建的,因此如果您正確創建了表格,則不必擔心設置正確的索引。

實體框架爲99%的常見CRUD場景編寫優化查詢。如果你對esql或linq語句感到瘋狂,那麼它們可能沒有經過優化,但對於小到中等比例的查詢訪問應該仍然可以很好地執行。

實體框架不負責使用正確的索引,即您的基礎數據存儲查詢優化器的工作。您可以編寫性能不佳的查詢,但不會正確使用索引,但這實際上是一個我不擔心的邊緣情況,除非發現問題。

TL:DR;

實體框架或者不負責完成您所要求的工作,並且在大多數情況下執行得很好。