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

如题所述

第1个回答  2022-11-23

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

   测试 执行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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网