提高查询数据库效能的小实验(补)

数据库查询语句性能对比分析
博客展示了两条数据库查询语句,分别统计了各表的扫描计数、逻辑读、物理读和预读次数。对比发现,虽第二条语句部分表扫描次数减少且利用了索引,但'Specimen_admin_specimen_T'表扫描次数比第一条多,博主对其中问题存疑,希望得到指正。
上面的两个查询的比较还是有一些问题:

SELECT ID

FROM Specimen_admin_specimen_T

WHERE (Species_ID IN

          (SELECT DISTINCT (Species_ID)

         FROM View_All_Tree

         WHERE genus_ID = '{F689E231-0DF5<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />-40C1-A11D-0B4DD3B8187A}')) OR

      (SubSpecies_ID IN

          (SELECT DISTINCT (SubSpecies_ID)

         FROM View_All_Tree

         WHERE genus_ID = '{F689E231-0DF5-40C1-A11D-0B4DD3B8187A}'))

表 'Table_genus'。扫描计数 4,逻辑读 8 次,物理读 0 次,预读 0 次。
表 'Table_species'。扫描计数 6238,逻辑读 12476 次,物理读 0 次,预读 0 次。
表 'Table_subspecies'。扫描计数 14,逻辑读 156 次,物理读 0 次,预读 0 次。
表 'Specimen_admin_specimen_T'。扫描计数 1,逻辑读 84381 次,物理读 0 次,预读 0 次。

-----------------VS----------------
SELECT ID
FROM Specimen_admin_specimen_T
WHERE EXISTS
          (SELECT Species_ID
         FROM view_All_Tree
         WHERE genus_ID = '{FDA6F11C-AC83-44FF-B6E9-345024907C73}' AND
               Species_ID = specimen_admin_specimen_T.Species_ID)
UNION
SELECT ID
FROM Specimen_admin_specimen_T
WHERE EXISTS
          (SELECT Species_ID
         FROM view_All_Tree
         WHERE genus_ID = '{FDA6F11C-AC83-44FF-B6E9-345024907C73}' AND
               subSpecies_ID = specimen_admin_specimen_T.subSpecies_ID)

表 'Specimen_admin_specimen_T'。扫描计数 4,逻辑读 86665 次,物理读 0 次,预读 0 次。
表 'Table_subspecies'。扫描计数 1,逻辑读 34 次,物理读 0 次,预读 0 次。
表 'Table_species'。扫描计数 2,逻辑读 4 次,物理读 0 次,预读 0 次。
表 'Table_genus'。扫描计数 2,逻辑读 4 次,物理读 0 次,预读 0 次。

----------------------
尽管'Specimen_admin_specimen_T'用到了索引,而且'Table_species'表的扫描次数大为减少并利用了索引,但是第二种方法的'Specimen_admin_specimen_T'表扫描的四次,而第一种方法只扫描了一次,不知道这里面的问题出在哪里,还望大家指正。

转载于:https://www.cnblogs.com/Seraph/archive/2005/03/11/116791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值