溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Sqlserver關(guān)于統(tǒng)計(jì)信息自動(dòng)創(chuàng)建自動(dòng)更新的知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-11-04 09:42:02 來(lái)源:億速云 閱讀:245 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫(kù)

這篇文章主要介紹“Sqlserver關(guān)于統(tǒng)計(jì)信息自動(dòng)創(chuàng)建自動(dòng)更新的知識(shí)點(diǎn)有哪些”,在日常操作中,相信很多人在Sqlserver關(guān)于統(tǒng)計(jì)信息自動(dòng)創(chuàng)建自動(dòng)更新的知識(shí)點(diǎn)有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Sqlserver關(guān)于統(tǒng)計(jì)信息自動(dòng)創(chuàng)建自動(dòng)更新的知識(shí)點(diǎn)有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

SSMS右鍵數(shù)據(jù)庫(kù)--Properties--Options--Automatic下面會(huì)出現(xiàn)和統(tǒng)計(jì)信息相關(guān)的幾個(gè)選項(xiàng),和sys.databases視圖的is_auto_create_stats_on,is_auto_create_stats_incremental_on,is_auto_update_stats_on,is_auto_update_stats_async_on這幾個(gè)字段一一對(duì)應(yīng)
AUTO_CREATE_STATISTICS
在自動(dòng)創(chuàng)建統(tǒng)計(jì)信息選項(xiàng) AUTO_CREATE_STATISTICS 為 ON 時(shí),查詢優(yōu)化器將根據(jù)需要在查詢謂詞中的單獨(dú)列上創(chuàng)建統(tǒng)計(jì)信息,以便改進(jìn)查詢計(jì)劃的基數(shù)估計(jì)。這些單列統(tǒng)計(jì)信息在現(xiàn)有統(tǒng)計(jì)信息對(duì)象中尚未具有直方圖的列上創(chuàng)建。 AUTO_CREATE_STATISTICS 選項(xiàng)不確定是否為索引創(chuàng)建了統(tǒng)計(jì)信息。 此選項(xiàng)也不生成篩選統(tǒng)計(jì)信息。 它嚴(yán)格應(yīng)用于全表的單列統(tǒng)計(jì)信息。
查詢優(yōu)化器通過(guò)使用 AUTO_CREATE_STATISTICS 選項(xiàng)創(chuàng)建統(tǒng)計(jì)信息時(shí),統(tǒng)計(jì)信息名稱以 _WA 開頭。 可以使用下面的查詢來(lái)確定查詢優(yōu)化器是否為查詢謂詞列創(chuàng)建了統(tǒng)計(jì)信息。
SELECT OBJECT_NAME(s.object_id) AS object_name,  
    COL_NAME(sc.object_id, sc.column_id) AS column_name,  
    s.name AS statistics_name  
FROM sys.stats AS s
INNER JOIN sys.stats_columns AS sc  
    ON s.stats_id = sc.stats_id AND s.object_id = sc.object_id  
WHERE s.name like '_WA%'  
ORDER BY s.name;  
AUTO_UPDATE_STATISTICS
在自動(dòng)更新統(tǒng)計(jì)信息選項(xiàng) AUTO_UPDATE_STATISTICS 為 ON 時(shí),查詢優(yōu)化器將確定統(tǒng)計(jì)信息何時(shí)可能過(guò)期,查詢優(yōu)化器通過(guò)計(jì)算自最后統(tǒng)計(jì)信息更新后數(shù)據(jù)修改的次數(shù)并且將這一修改次數(shù)與某一閾值進(jìn)行比較,確定統(tǒng)計(jì)信息何時(shí)可能過(guò)期。 該閾值基于表中或索引視圖中的行數(shù)。
   SQL Server 2014 (12.x),SQL Server 基于更改行的百分比使用閾值。 這與表中的行數(shù)無(wú)關(guān)。 閾值是:
        如果在評(píng)估時(shí)間統(tǒng)計(jì)信息時(shí)表基數(shù)為 500 或更低,則每達(dá)到 500 次修改時(shí)更新一次。
        如果在評(píng)估時(shí)間統(tǒng)計(jì)信息時(shí)表基數(shù)大于 500,則每達(dá)到 500 + 修改次數(shù)的百分之二十時(shí)更新一次。
   SQL Server 2016 (13.x) 開始,如果數(shù)據(jù)庫(kù)兼容性級(jí)別為 130,SQL Server 將使用遞減的動(dòng)態(tài)統(tǒng)計(jì)信息更新閾值,此閾值將根據(jù)表中的行數(shù)進(jìn)行調(diào)整。 它的計(jì)算方式為 1000 與當(dāng)前的表基數(shù)乘積的平方根。 例如,如果表中包含 200 萬(wàn)行,則計(jì)算為 sqrt (1000 * 2000000) = 44721.359。 進(jìn)行此更改后,將會(huì)更頻繁地更新大型表的統(tǒng)計(jì)信息。 但是,如果數(shù)據(jù)庫(kù)的兼容性級(jí)別低于 130,則適用 SQL Server 2014 (12.x) 閾值。
AUTO_UPDATE_STATISTICS_ASYNC
異步統(tǒng)計(jì)信息更新選項(xiàng) AUTO_UPDATE_STATISTICS_ASYNC 將確定查詢優(yōu)化器是使用同步統(tǒng)計(jì)信息更新還是異步統(tǒng)計(jì)信息更新。 默認(rèn)情況下,異步統(tǒng)計(jì)信息更新選項(xiàng)為 OFF 狀態(tài),并且查詢優(yōu)化器以同步方式更新統(tǒng)計(jì)信息。

到此,“Sqlserver關(guān)于統(tǒng)計(jì)信息自動(dòng)創(chuàng)建自動(dòng)更新的知識(shí)點(diǎn)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI