Sql-Server

通過分區提高性能

  • May 15, 2013

我正在使用 SQL Server 2012。我正在使用 CTE 從 items 表創建一個 orders 表。訂單表的最終計數約為 1.2 億。整個過程大約需要2個小時。

對錶進行分區可以幫助減少完成時間嗎?

如果是這樣,我可以按訂單年份對空表進行分區,然後從 CTE 插入訂單表。或者我是否需要在 items 表上創建一個分區,因為 CTE 是從 items 表中匯總的?

此外,我估計的行數與實際行數有很大差異。

對錶進行分區可以幫助減少完成時間嗎?

不可以。分區不是性能特徵,而是用於其他目的。如果表有 1.2 億行未分區,則分區後也將有 1.2 億行。閱讀如何決定是否應該使用表分區

如果您想提高性能,您需要辨識瓶頸並適當地解決它們。這是一個糟糕的計劃嗎?缺少索引?IO慢?CPU慢?記憶體不夠?糟糕的程式碼?使用等待和隊列等方法來辨識瓶頸。

您可以通過分區提高性能。您將需要在開發伺服器上進行試驗,看看它是否可以使您受益。

根據您經常執行的查詢類型和硬體配置,您可以提高查詢性能。例如,當表中的分區列相同時,查詢優化器可以更快地處理兩個或多個分區表之間的等連接查詢,因為分區本身可以連接。

分區表和索引 (msdn)

引用自:https://dba.stackexchange.com/questions/42209