国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

強制SQL Server執(zhí)行計劃使用并行提升在復雜查詢語句下的性能

2020-07-25 12:57:43
字體:
來源:轉載
供稿:網(wǎng)友

通過觀察執(zhí)行計劃,發(fā)現(xiàn)之前的執(zhí)行計劃在很多大表連接的部分使用了Hash Join,由于涉及的表中數(shù)據(jù)眾多,因此查詢優(yōu)化器選擇使用并行執(zhí)行,速度較快。而我們優(yōu)化完的執(zhí)行計劃由于索引的存在,且表內數(shù)據(jù)非常大,過濾條件的值在一個很寬的統(tǒng)計信息步長范圍內,導致估計行數(shù)出現(xiàn)較大偏差(過濾條件實際為15000行,步長內估計的平均行數(shù)為800行左右),因此查詢優(yōu)化器選擇了Loop Join,且沒有選擇并行執(zhí)行,因此執(zhí)行時間不降反升。

由于語句是在存儲過程中實現(xiàn),因此我們直接對該語句使用一個undocument查詢提示,使得該查詢的并行開銷閾值強制降為0,使得該語句強制走并行,語句執(zhí)行時間由20秒降為5秒(注:使用Hash Join提示是7秒)。

下面通過一個簡單的例子展示使用該提示的效果,示例T-SQL如代碼清單1所示:

SELECT *FROM [AdventureWorks].[Sales].[SalesOrderDetail] a INNER JOIN [Sales].SalesOrderHeader bON a.SalesOrderID=b.SalesOrderID

代碼清單1.

該語句默認不會走并行,執(zhí)行計劃如圖1所示:

image
圖1.

下面我們對該語句加上提示,如代碼清單2所示。

SELECT * FROM [AdventureWorks].[Sales].[SalesOrderDetail] a  INNER JOIN [Sales].SalesOrderHeader b ON a.SalesOrderID=b.SalesOrderID OPTION(querytraceon 8649)

代碼清單2.

此時執(zhí)行計劃會按照提示走并行,如圖2所示:

image
圖2.

在面對一些復雜的DSS或OLAP查詢時遇到類似的情況,可以考慮使用該Undocument提示要求SQL Server盡可能的使用并行,從而降低執(zhí)行時間。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安平县| 洛扎县| 嘉义县| 称多县| 辛集市| 隆化县| 武义县| 阳朔县| 辛集市| 赤城县| 双流县| 崇州市| 都江堰市| 和龙市| 竹北市| 洞头县| 鸡泽县| 佳木斯市| 五峰| 陇西县| 三门峡市| 寿阳县| 北京市| 化州市| 望奎县| 夹江县| 前郭尔| 开化县| 永城市| 鄂州市| 涡阳县| 巴中市| 梁平县| 阳谷县| 吕梁市| 兴仁县| 甘德县| 出国| 乳山市| 循化| 克拉玛依市|