欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

查詢優(yōu)化建議

系統(tǒng) 2222 0

某些查詢占用的資源比其他查詢占用的資源多。例如,返回大型結(jié)果集的查詢和那些包含 WHERE 子句(并非唯一子句)的查詢總是占用大量資源。與不太復(fù)雜的查詢相比,查詢優(yōu)化器的智能水平無法消除這些構(gòu)造的資源開銷。SQL Server 使用最佳訪問計(jì)劃,但查詢優(yōu)化會(huì)受到可訪問內(nèi)容的限制。

盡管如此,您可以執(zhí)行下列操作來提高查詢性能:

  • 添加更多內(nèi)存。當(dāng)服務(wù)器運(yùn)行許多復(fù)雜查詢且其中幾個(gè)查詢執(zhí)行很慢時(shí),此解決方案尤其有用。

  • 使用多個(gè)處理器。多個(gè)處理器允許數(shù)據(jù)庫引擎使用并行查詢。有關(guān)詳細(xì)信息,請(qǐng)參閱

  • 重寫查詢。請(qǐng)注意下列事項(xiàng):

    • 如果查詢使用游標(biāo),則確定是否可以使用效率更高的游標(biāo)類型(如快速只進(jìn)游標(biāo))或單個(gè)查詢編寫游標(biāo)查詢。單個(gè)查詢的性能通常優(yōu)于游標(biāo)操作。因?yàn)橐唤M游標(biāo)語句通常是一個(gè)外循環(huán)操作,在此操作中,一旦使用內(nèi)部語句便開始處理外循環(huán)中的每一行,所以可考慮使用 GROUP BY 或 CASE 語句,或者使用子查詢來替代。有關(guān)詳細(xì)信息,請(qǐng)參閱

    • 如果應(yīng)用程序使用循環(huán),可考慮將循環(huán)放入查詢內(nèi)。應(yīng)用程序經(jīng)常包含帶參數(shù)化查詢的循環(huán),該循環(huán)執(zhí)行許多次并要求運(yùn)行應(yīng)用程序的計(jì)算機(jī)與 SQL Server 之間有網(wǎng)絡(luò)往返。可改用臨時(shí)表創(chuàng)建一個(gè)更復(fù)雜的單一查詢。只需要一個(gè)網(wǎng)絡(luò)往返,查詢優(yōu)化器就可以更好地優(yōu)化該單個(gè)查詢。有關(guān)詳細(xì)信息,請(qǐng)參閱

    • 不要在同一查詢中為一個(gè)表使用多個(gè)別名來模擬索引交集。這已沒有必要,因?yàn)?SQL Server 會(huì)自動(dòng)考慮索引交集并可以在同一查詢中對(duì)同一個(gè)表使用多個(gè)索引。請(qǐng)參閱以下示例查詢:

      復(fù)制代碼
                                SELECT * FROM lineitem 
      
      WHERE partkey BETWEEN 17000 AND 17100 AND
      
          shipdate BETWEEN '1/1/1994' AND '1/31/1994'
                              
      SQL Server 可以為 partkey shipdate 列使用索引,然后在兩個(gè)子集之間執(zhí)行哈希匹配來獲取索引交集。

    • 查詢參數(shù)化用于允許重復(fù)使用緩存的查詢執(zhí)行計(jì)劃。如果一組查詢具有相同的查詢哈希和查詢計(jì)劃哈希,則可以通過創(chuàng)建一個(gè)參數(shù)化查詢來提高性能。如果調(diào)用具有參數(shù)的一個(gè)查詢,而不是調(diào)用具有文字值的多個(gè)查詢,則會(huì)允許重用緩存查詢執(zhí)行計(jì)劃。有關(guān)詳細(xì)信息,請(qǐng)參閱

      如果無法修改應(yīng)用程序,則可以使用帶有強(qiáng)制參數(shù)化的模板計(jì)劃指南來獲得類似結(jié)果。有關(guān)詳細(xì)信息,請(qǐng)參閱

    • 只在必要時(shí)使用查詢提示。如果查詢使用在早期版本的 SQL Server 上執(zhí)行的提示,則應(yīng)在不指定提示的情況下對(duì)其進(jìn)行測(cè)試。提示會(huì)阻礙查詢優(yōu)化器選擇更好的執(zhí)行計(jì)劃。有關(guān)詳細(xì)信息,請(qǐng)參閱

  • 使用 query_plan_hash 可捕獲、存儲(chǔ)和比較一段時(shí)間內(nèi)的查詢的查詢執(zhí)行計(jì)劃。例如,更改系統(tǒng)配置之后,可以將任務(wù)關(guān)鍵查詢的查詢計(jì)劃哈希值與其原始查詢計(jì)劃哈希值進(jìn)行比較。通過查詢計(jì)劃哈希值的不同可以了解系統(tǒng)配置更改是否會(huì)導(dǎo)致更新重要查詢的查詢執(zhí)行計(jì)劃。如果 sys.dm_exec_requests 中當(dāng)前長(zhǎng)時(shí)間運(yùn)行的查詢的查詢計(jì)劃哈希與其基準(zhǔn)查詢計(jì)劃哈希(通常認(rèn)為該查詢具有良好的性能)不同,則也可以決定停止執(zhí)行該查詢。有關(guān)詳細(xì)信息,請(qǐng)參閱

  • 使用 query governor 配置選項(xiàng)。 query governor 配置選項(xiàng)可用于防止長(zhǎng)時(shí)間執(zhí)行的查詢占用系統(tǒng)資源。默認(rèn)情況下,該選項(xiàng)設(shè)置為允許執(zhí)行所有查詢,而不管它們需要多長(zhǎng)時(shí)間。但是,您還可以設(shè)置查詢調(diào)控器來限制允許所有查詢執(zhí)行所有連接所用的最大秒數(shù),或者僅限制查詢執(zhí)行一個(gè)特定連接的時(shí)間。因?yàn)椴樵冋{(diào)控器以估計(jì)的查詢開銷而不是實(shí)際的占用時(shí)間為基礎(chǔ),所以它沒有任何運(yùn)行時(shí)開銷。它還會(huì)在長(zhǎng)時(shí)間執(zhí)行的查詢開始之前將其停止,而不是將它們運(yùn)行到某個(gè)預(yù)定義的限制時(shí)間。有關(guān)詳細(xì)信息,請(qǐng)參閱

  • 通過計(jì)劃緩存優(yōu)化查詢計(jì)劃的重新使用。數(shù)據(jù)庫引擎對(duì)查詢計(jì)劃進(jìn)行緩存以備重新使用。如果查詢計(jì)劃不進(jìn)行緩存,則永遠(yuǎn)不能重新使用。然而,每次執(zhí)行未緩存的查詢計(jì)劃時(shí),必須對(duì)其進(jìn)行編譯,這就導(dǎo)致性能降低。下列 Transact-SQL SET 語句選項(xiàng)可阻止重新使用已緩存的查詢計(jì)劃。包含這些處于 ON 狀態(tài)的 SET 選項(xiàng)的 Transact-SQL 批處理無法與 SET 選項(xiàng)處于 OFF 狀態(tài)時(shí)所編譯的相同批處理共享其查詢計(jì)劃:

    SET ANSI_NULL_DFLT_OFF

    SET ANSI_NULL_DFLT_ON

    SET ANSI_NULLS

    SET ANSI_PADDING

    SET ANSI_WARNINGS

    SET ARITHABORT

    SET CONCAT_NULL_YIELDS_NULL

    SET DATEFIRST

    SET DATEFORMAT

    SET FORCEPLAN

    SET LANGUAGE

    SET NO_BROWSETABLE

    SET NUMERIC_ROUNDABORT

    SET QUOTED_IDENTIFIER

    SET TEXTSIZE

    ?

    此外,由于 SET ANSI_DEFAULTS 選項(xiàng)可用于更改 ANSI_NULLS、ANSI_NULL_DFLT_ON、ANSI_PADDING、ANSI_WARNINGS、CURSOR_CLOSE_ON_COMMIT、IMPLICIT_TRANSACTIONS 和 QUOTED_IDENTIFIER SET 選項(xiàng),因此該選項(xiàng)會(huì)影響已緩存查詢計(jì)劃的重新使用。請(qǐng)注意,SET ANSI_DEFAULTS 可以更改的大部分 SET 選項(xiàng)都列為可能會(huì)影響查詢計(jì)劃重新使用的 SET 選項(xiàng)。

    可以使用下列方法更改其中某些 SET 選項(xiàng):

    • 使用 sp_configure 存儲(chǔ)過程進(jìn)行服務(wù)器范圍的更改。有關(guān)詳細(xì)信息,請(qǐng)參閱

    • 使用 ALTER DATABASE 語句的 SET 子句。有關(guān)詳細(xì)信息,請(qǐng)參閱

    • 更改 OLE DB 和 ODBC 連接設(shè)置。有關(guān)詳細(xì)信息,請(qǐng)參閱

注意:
只有在連接時(shí)建立 SET 選項(xiàng)并確保它們?cè)谶B接期間不發(fā)生變化,才能避免 SET 選項(xiàng)出現(xiàn)重新編譯查詢計(jì)劃的情況。某些 SET 選項(xiàng)必須設(shè)置為特定值,才能使用索引視圖或計(jì)算列的索引。有關(guān)詳細(xì)信息,請(qǐng)參閱

查詢優(yōu)化建議


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 成人免费高清 | 国产精品国产三级国产aⅴ无密码 | 天天影视色香欲综合网老头 | 亚洲精品国偷拍自产在线观看 | 一级毛片 在线播放 | 国产精品福利片免费看 | 天干夜天天夜天干天国产电影 | 狠狠添| 免费看黄网站在线 | 国产亚洲一区二区三区在线观看 | 亚洲精品国产精品国自产在线 | 欧美卡一卡二卡新区网站 | 欧美日韩三区 | 三级视频在线观看 | 国产亚洲欧美视频 | 亚洲国产视频网站 | 国产91久久精品一区二区 | 日本道在线视频 | 天天做天天欢天天爽 | 香港三级日本三级韩国三级韩 | 一区国产精品 | 久久精品视频一区二区 | 亚洲综合色婷婷在线观看 | 欧美三级短视频 | 中国一级特黄 | 奇米4色| 中文字幕一区在线观看视频 | 亚洲精品人成网在线播放蜜芽 | 精品女同一区二区三区免费播放 | 91久久亚洲国产成人精品性色 | 日本午夜视频 | 国产苐1页影院草草影院 | 国产牛仔裤系列在线观看 | 制服丝袜成人动漫 | 日韩精品亚洲专区在线电影不卡 | 日韩有码在线观看 | 久久精品a| 精品久久九九 | 免费a级毛片在线播放 | 亚洲国产精品99久久久久久久久 | 欧美黄色大片在线观看 |