建立統計資訊來最佳化查詢效能

來源:互聯網
上載者:User

今天使用sqlserver2008的“Database Engine Tuning Advisor”在對一個sql進行最佳化時, 索引建議裡給出如下建議目標:
--CREATE STATISTICS
CREATE STATISTICS [_dta_stat_1758629308_16_10_1] ON [dbo].[PrmOrderPromiseTime]([DistributionId], [StoreId], [OrderId])

-- 包含索引
CREATE NONCLUSTERED INDEX [_dta_index_PrmOrderSiteActualTime_6_1582628681__K1_2_7] ON [dbo].[PrmOrderSiteActualTime]
(
 [OrderId] ASC
)
INCLUDE ( [SiteId],
[ActualSiteId]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]

尤其是create statistics,粗略地瞭解了下。 如下知識來自csdn:

1.STATISTICS是一個表中某幾個列的統計資訊,如一個表是全校學生某次考試的分數,score列的類型是int,取值範圍是0到100的整數,那麼statistc就是每個分數分別有多少人。在一個特定的查詢中,使用索引可能加快速度,也可能減慢速度,所以SQL server要事先對使用索引的效果做一個預測,預測的依據就是STATISTICS。
2.預設情況下,表或索引更改了,統計會相應地自動更新,以保持統計是最新的。但是可以在資料庫選項中關閉這個自動更新的功能,提高資料表的更新速度。但需要定期手動更新統計。因為到期的統計資訊會對是否使用索引的判斷帶來誤判。沒發現SQL2000和SQL2005的統計有什麼區別。
3.index要依賴正確的STATISTICS才能發揮作用。而你的SQL2005最佳化工具對缺乏STATISTIC的列自動產生了建立語句。

 

具體可在msdn上尋求協助http://msdn.microsoft.com/zh-cn/library/ms188038(SQL.105).aspx、http://msdn.microsoft.com/zh-cn/library/bb510669.aspx

sql方面要學的東西太多了,以後還需耐心的繼續學習。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.