sql Server 查询优化

叁歲伎倆 2024-02-17 17:13 140阅读 0赞
  1. t_FSHH_PartitionInfo表大概有10多万条数据,RdRecords大概3万条数据,刚开始使用如下语句执行时,大概耗时2分钟
  2. Select p.* From t_FSHH_PartitionInfo p Where p.cLineID=2 and p.dQCVoucherDate Between '2016-03-01 00:00:00' And '2016-03-31 23:59:59' And
  3. (
  4. isnull(p.bReturn,'否')='是' or exists(
  5. Select d.cdefine28 As cBarcode From RdRecords d Where p.cBarcode=d.cdefine28
  6. group By d.cdefine28
  7. )
  8. )

2分钟肯定是不能接受的,于是开始优化,最张将子查询的实现方式改为union all的查询方式,语句如下:

  1. select p.* from t_FSHH_PartitionInfo p
  2. Where p.cLineID=2 and p.dQCVoucherDate Between '2016-03-01 00:00:00' And '2016-03-31 23:59:59' And
  3. isnull(p.bReturn,'否')='是'
  4. Union All
  5. Select p.* From t_FSHH_PartitionInfo p Where p.cLineID=2 and isnull(p.bReturn,'否')!='是'
  6. And
  7. exists(
  8. Select d.cdefine28 As cBarcode From RdRecords d Where p.cBarcode=d.cdefine28 --and r.dDate Between '2016-03-28 00:00:00' And '2016-03-28 23:59:59'
  9. group By d.cdefine28
  10. )

最后耗时变为10秒左右,这个速度仍然不够理想,不过已经比之前好多了。

发表评论

表情:
评论列表 (有 0 条评论,140人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL Server查询优化器详解

    SQL Server的查询优化器在select查询执行的时候产生一个高效的查询执行计划。如果优化器不能选择最优的计划,那么就需要检查查询计划、统计信息、支持的索引等,而通过使用

    相关 sql server 查询原理

    一.SQL SERVER是通过哪个组件以及如何来和客户端进行“接受要求”及“提供结果”的交互的。 二.关系引擎(查询处理器)处理SQL查询的详细步骤。   第一

    相关 SQL Server数据查询

    本节将学习如何从SQL Server数据库查询数据。从一个简单的查询开始,查询语句用于从单个或多个表中检索数据。 SQL是一种特殊目的的编程语言,它是一种数据库查询和程序设计