SQL Server执行SQL语句时内存占用特点[4]

 我来答
机器1718
2022-11-23 · TA获得超过6831个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:160万
展开全部

  在两个表都有聚集索引情况下 逻辑读最小 每个表只有 到 次 而且只有实际需要输出的数据才会被读入内存页 两个表都有非聚集索引情况下 消耗的逻辑读和内存资源近似

   测试 执行Merge Join

   执行全表选取或者低选择性选取

  执行SQL:

以下是引用片段  Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo

  如果两张表都没有任何索引 则两张表都要进行全表扫描 所有的数据都要读入内存页

  逻辑读数近似等于两张表的数据页总和 SQL Server处理过程中将使用到临时表

  只有一张表有聚集索引的情形类似 SQL Server处理过程中将使用到临时表 并且读入所有的数据页到内存

  如果两张表都有聚集索引 尽管两表的数据都会被读入内存页 但逻辑读数已经大大减少 等于其中一张表总数据内存页数加上最终输出的数据页数 而且SQL Server处理过程中将不需要再使用临时表

   执行高选择性选取

  对于这样的高选择性SQL语句 SQL Server 将提示无法生成执行计划

以下是引用片段 Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo   Where A MobileNo=

  但可以执行

以下是引用片段  Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo   Where A MobileNo<=  (注 最终结果只有 条)

  这样的属于低选择性语句 但最终结果也很少的语句 如前面所述 这种情况下 采用netsted loop联接效率可能更高

   执行高选择性选取

  执行如下的SQL语句

以下是引用片段  Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo   Where A MobileNo=

  在两个表都没有任何索引情况下 两张表都将执行全表扫描 要读入所有的数据页到内存 总体逻辑读取决于两表的数据页数

  在一个表有聚集索引或者非聚集索引情况下 该表将执行Index Seek 另一个表将出现全表扫描 内存数据缓冲区中 将有一张表只读入最终数据所在的数据页 一张表读入全部数据页 逻辑读数取决于表在联接中的秩序 以及无索引表的数据页数

  在两个表都有聚集索引情况下 逻辑读最小 每个表只有 到 次 而且只有实际需要输出的数据才会被读入内存页 两个表都有非聚集索引情况下 消耗的逻辑读和内存资源近似

   测试 执行Merge Join

   执行全表选取或者低选择性选取

  执行SQL:

以下是引用片段  Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo

  如果两张表都没有任何索引 则两张表都要进行全表扫描 所有的数据都要读入内存页

  逻辑读数近似等于两张表的数据页总和 SQL Server处理过程中将使用到临时表

  只有一张表有聚集索引的情形类似 SQL Server处理过程中将使用到临时表 并且读入所有的数据页到内存

  如果两张表都有聚集索引 尽管两表的数据都会被读入内存页 但逻辑读数已经大大减少 等于其中一张表总数据内存页数加上最终输出的数据页数 而且SQL Server处理过程中将不需要再使用临时表

   执行高选择性选取

  对于这样的高选择性SQL语句 SQL Server 将提示无法生成执行计划

以下是引用片段 Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo   Where A MobileNo=

  但可以执行

以下是引用片段  Select * From P_Order A   Inner merge JOIN P_User B ON A MobileNo=B MobileNo   Where A MobileNo<=  (注 最终结果只有 条)

  这样的属于低选择性语句 但最终结果也很少的语句 如前面所述 这种情况下 采用netsted loop联接效率可能更高

lishixinzhi/Article/program/SQLServer/201311/22450

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式