好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 淺談SQL Server中統(tǒng)計對于查詢的影響分析

淺談SQL Server中統(tǒng)計對于查詢的影響分析

熱門標簽:智能語音外呼系統(tǒng)哪個牌子好 400電話申請需要開戶費嗎 溫州語音外呼系統(tǒng)代理 山西語音外呼系統(tǒng)價格 重慶防封電銷機器人供應商 威海智能語音外呼系統(tǒng) 南京電銷外呼系統(tǒng)運營商 西安青牛防封電銷卡 北京辦理400電話多少
而每次查詢分析器尋找路徑時,并不會每一次都去統(tǒng)計索引中包含的行數(shù),值的范圍等,而是根據(jù)一定條件創(chuàng)建和更新這些信息后保存到數(shù)據(jù)庫中,這也就是所謂的統(tǒng)計信息。

如何查看統(tǒng)計信息
查看SQL Server的統(tǒng)計信息非常簡單,使用如下指令:
DBCC SHOW_STATISTICS('表名','索引名')

所得到的結果如圖1所示。

   

    圖1.統(tǒng)計信息

統(tǒng)計信息如何影響查詢

    下面我們通過一個簡單的例子來看統(tǒng)計信息是如何影響查詢分析器。我建立一個測試表,有兩個INT值的列,其中id為自增,ref上建立非聚集索引,插入100條數(shù)據(jù),從1到100,再插入9900條等于100的數(shù)據(jù)。圖1中的統(tǒng)計信息就是示例數(shù)據(jù)的統(tǒng)計信息。

    此時,我where后使用ref值作為查詢條件,但是給定不同的值,我們可以看出根據(jù)統(tǒng)計信息,查詢分析器做出了不同的選擇,如圖2所示。

   

     圖2.根據(jù)不同的謂詞,查詢優(yōu)化器做了不同的選擇

     其實,對于查詢分析器來說,柱狀圖對于直接可以確定的謂詞非常管用,這些謂詞比如:

    where date = getdate()
    where id= 12345
    where monthly_sales 10000 / 12
    where name like “Careyson” + “%”

    但是對于比如

    where price = @vari
    where total_sales > (select sum(qty) from sales)
    where a.id =b.ref_id

    where col1 =1 and col2=2

    這類在運行時才能知道值的查詢,采樣步長就明顯不是那么好用了。另外,上面第四行如果謂詞是兩個查詢條件,使用采樣步長也并不好用。因為無論索引有多少列,采樣步長僅僅存儲索引的第一列。當柱狀圖不再好用時,SQL Server使用密度來確定最佳的查詢路線。

    密度的公式是:1/表中唯一值的 個數(shù)。當密度越小時,索引越容易被選中。比如圖1中的第二個表,我們可以通過如下公式來計算一下密度:

   

    圖3.某一列的密度

    根據(jù)公式可以推斷,當表中的數(shù)據(jù)量逐漸增大時,密度會越來越小。

    對于那些不能根據(jù)采樣步長做出選擇的查詢,查詢分析器使用密度來估計行數(shù),這個公式為:估計的行數(shù)=表中的行數(shù)*密度

    那么,根據(jù)這個公式,如果我做查詢時,估計的行數(shù)就會為如圖4所示的數(shù)字。

   

    圖4.估計的行數(shù)

    我們來驗證一下這個結論,如圖5所示。

   

    圖5.估計的行數(shù)

    因此,可以看出,估計的行數(shù)是和實際的行數(shù)有出入的,當數(shù)據(jù)分布均勻時,或者數(shù)據(jù)量大時,這個誤差將會變的非常小。

統(tǒng)計信息的更新

    由上面的例子可以看到,查詢分析器由于依賴于統(tǒng)計信息進行查詢,那么過時的統(tǒng)計信息則可能導致低效率的查詢。統(tǒng)計信息既可以由SQL Server來進行管理,也可以手動進行更新,也可以由SQL Server管理更新時手動更新。

    當開啟了自動更新后,SQL Server監(jiān)控表中的數(shù)據(jù)更改,當達到臨界值時則會自動更新數(shù)據(jù)。這個標準是:

    向空表插入數(shù)據(jù)時     少于500行的表增加500行或者更多     當表中行多于500行時,數(shù)據(jù)的變化量大于20%時

    上述條件的滿足均會導致統(tǒng)計被更新。

    當然,我們也可以使用如下語句手動更新統(tǒng)計信息。

     

     UPDATE STATISTICS 表名[索引名]

列級統(tǒng)計信息

    SQL Server還可以針對不屬于任何索引的列創(chuàng)建統(tǒng)計信息來幫助查詢分析器獲取”估計的行數(shù)“.當我們開啟數(shù)據(jù)庫級別的選項“自動創(chuàng)建統(tǒng)計信息”如圖6所示。

   

    圖6.自動創(chuàng)建統(tǒng)計信息

   當這個選項設置為True時,當我們where謂詞指定了不在任何索引上的列時,列的統(tǒng)計信息會被創(chuàng)建,但是會有以下兩種情況例外:

    創(chuàng)建統(tǒng)計信息的成本超過生成查詢計劃的成本     當SQL Server忙時不會自動生成統(tǒng)計信息

   我們可以通過系統(tǒng)視圖sys.stats來查看這些統(tǒng)計信息,如圖7所示。

   

    圖7.通過系統(tǒng)視圖查看統(tǒng)計信息

    當然,也可以通過如下語句手動創(chuàng)建統(tǒng)計信息:

    CREATE STATISTICS 統(tǒng)計名稱 ON 表名 (列名 [,...n])

總結

    本文簡單談了統(tǒng)計信息對于查詢路徑選擇的影響。過時的統(tǒng)計信息很容易造成查詢性能的降低。因此,定期更新統(tǒng)計信息是DBA重要的工作之一。

您可能感興趣的文章:
  • SQLSERVER收集語句運行的統(tǒng)計信息并進行分析
  • SQL Server自動更新統(tǒng)計信息的基本算法
  • sqlserver 統(tǒng)計sql語句大全收藏
  • SQLSERVER語句的執(zhí)行時間顯示的統(tǒng)計結果是什么意思
  • SQLServer2005 中的幾個統(tǒng)計技巧
  • SQL Server統(tǒng)計信息更新時采樣百分比對數(shù)據(jù)預估準確性的影響詳解

標簽:中衛(wèi) 新余 濟寧 金昌 河源 貸款群呼 宜春 黃山

巨人網(wǎng)絡通訊聲明:本文標題《淺談SQL Server中統(tǒng)計對于查詢的影響分析》,本文關鍵詞  淺談,SQL,Server,中,統(tǒng)計,對于,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談SQL Server中統(tǒng)計對于查詢的影響分析》相關的同類信息!
  • 本頁收集關于淺談SQL Server中統(tǒng)計對于查詢的影響分析的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: **毛片一级| 美女直播扒开隐私地方| 男女又爽?又黄?免费软件| 肚兜颤颤白嫩h| 狠狠做深爱婷婷久久一区| 极品尤物一区二区三区小说| 特级毛片WWW免费版| 黑人太大太粗受不了了| 精品97国产免费人成视频| 国产免费无遮挡精品视频| 亚洲韩国日本欧美一区二区三区| 很黄很色的动态图| 国产一区二区三区午夜a?v| 亚洲人成77777| 制服诱惑影院| 亚洲一区二区免费视频| 局长含着我的奶边摸边做| 《美国式禁忌3》在线| 大逼片| 日本潘金莲三级BD高清| 趴好让我灌满牛奶| 动漫美女吸乳羞羞网站| 孩交啪啪网址| 91在线无精精品秘?一区二区| 毛片96视频免费观看| 大尺度做爰啪啪高潮床戏古代小说 | 亚洲AV无码国产永久播放尤物| 高清乱码????免费网| 任你躁AV一区二区三区桃花视频| 绝品家丁免费阅读| 国产精品麻豆| 少妇与黑人一二三区无码日本一级| 肉动漫网| 日本一区二区三区四区五区| 91精品一级毛片A久久久久| 嗯啊不要了好大| 性情网| 亚洲97人人| 找个毛片看看| 一代女皇武则天艳史| 国产妇女偷人视频大全|