`

sql2000中的连接两个表的查询语句的执行路径对性能的影响

 
阅读更多

sql2000中的连接两个表的查询语句的执行路径对性能的影响

 

有两个表 

    1   pay_itemdetail   大概 2-3百万条数据

    2   pay_builddetail   大概 55 条数据 

 

1原语句,效率非常低,用时20秒以上

  select * from pay_itemdetail with(nolock)

where builditemid in (select id from pay_builddetail where buildid =  1)

2 改进的语句求count ,又两种方法,连接,用时1秒中

   1in 的方式

     select  count(1)  from pay_itemdetail with(nolock)

where builditemid in (select id from pay_builddetail where buildid =  1)

  2)连接的方式

select count(1) from pay_itemdetail a with(nolock),pay_builddetail b with(nolock)

where  b.buildid=100 and a.builditemid = b.id

 

3 最后的改进 top ,用时0

select top 1 a.*  from pay_itemdetail a with(nolock),pay_builddetail b with(nolock)

where  b.buildid=1 and a.builditemid =b.id

 

4 top时如果没有记录匹配,速度很慢,用时10

select top 1 a.*  from pay_itemdetail a with(nolock),pay_builddetail b with(nolock)

where  b.buildid=100 and a.builditemid =b.id

 

 

5 4进行进一步分析祥解

 

select  top 1 a.* from pay_itemdetail a with(nolock),pay_builddetail b with(nolock)

where b.buildid=1 and a.builditemid =b.id 

来取第一条符合条件的 pay_itemdetail 中的数据,当 b.buildid=1 条件成立时,执行时间只用0秒;

分享到:
评论

相关推荐

    查询优化:sql2000中的连接两个表的查询语句的执行路径对性能的影响比较

    在SQL Server 2000中,连接两个表的查询语句是数据库操作中的常见操作,对于性能的影响至关重要。查询优化是数据库管理的核心任务之一,它涉及到如何有效地执行SQL语句,以达到最快的响应时间和最小的系统资源消耗。...

    SQL 语句执行步骤

    执行计划包含了如何执行查询的具体步骤,如表扫描、索引查找、联接操作等。 #### 四、SQL Server 2005中的新逻辑处理阶段 SQL Server 2005引入了一些新的逻辑处理阶段,以支持更多复杂的查询需求: - **并行查询...

    SQL多表连接查询优化的相关研究

    在SQL(Structured Query Language)中,连接查询(JOIN)是用于合并两个或更多表中的数据的关键技术。当数据分布在多个表中时,通过连接查询可以获取到跨表的关联信息。 一、SQL连接查询类型: 1. 内连接(INNER ...

    SQL2000连接包

    sqljdbc.jar包含了实现这些接口的具体类,使得Java程序员能够通过编写SQL语句与SQL Server 2000进行交互,执行查询、事务处理、存储过程等功能。 msbase.jar和msutil.jar是辅助性库文件,主要包含了一些特定于SQL ...

    sql语句收集,常用数据库表操作语句

    - 这条语句首先执行内部查询,即从表`a`中选择`a`、`b`、`c`列的数据,然后将结果作为外部查询的一个临时表,再基于这个临时表执行过滤操作。 **应用场景**: - 当需要先执行一次查询来获取中间结果,然后再对中间...

    SQLServer查询耗费大量资源的语句.txt

    在这段SQL代码中,主要关注的是如何找出那些执行时间长且对系统资源消耗大的查询语句。 #### 1.1 SQL Server DMV (Dynamic Management Views) 的使用 - **sys.dm_exec_query_stats**:这是一个非常重要的动态管理...

    关于Oracle多表连接,提高效率,性能优化操作

    执行路径:ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就可能要几十表了. 这是因为ORACLE只对...

    Oracle常用SQL查询语句

    根据提供的信息,我们可以总结出以下Oracle数据库中常用的SQL查询语句及它们的功能: ### 1. 查询表空间及其总大小 ...以上查询涵盖了Oracle数据库管理中常用的一些SQL语句,对于日常维护和性能调优非常有帮助。

    SQL Server 2000完结篇系列之六:设计高效的SQL语句进行查询优化

    在SQL Server 2000中,有聚集索引和非聚集索引两种类型。聚集索引决定了表中数据的物理顺序,而非聚集索引则包含指向数据行的指针。选择哪些列创建索引,以及索引的基数和宽度,都需要根据实际查询模式来精心设计。 ...

    SQL语句基础PPT

    6. **连接操作**: JOIN语句用于合并两个或多个表的数据,包括INNER JOIN(匹配记录)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)、FULL JOIN(全连接)。 7. **子查询**: 子查询是在一个查询语句中嵌套另一个查询...

    SQL语句执行深入讲解(MySQL架构总览-查询执行流程-SQL解析顺序)

    此外,MySQL还包含其他组件,如连接管理、线程池、用户授权、查询缓存、命令解析器、预处理器、查询优化器、访问控制、表管理、日志记录等,这些组件协同工作,确保SQL语句的有效执行。 接下来,我们详细讨论查询...

    通过分析SQL语句的执行计划优化SQL(五)

    在查询优化中,Row Source指的是由上一步操作返回的满足条件的行集合,它可以是整个表、部分表或两个Row Source连接后的结果。Predicate则是指查询中的WHERE子句,用于筛选行。Driving Table(驱动表)和Probed ...

    SQL查询原理及执行顺序

    7. **选择连接顺序**:在多表连接中,确定先连接哪两个表以及将哪个表作为源数据表,这对于优化性能至关重要。 8. **选择数据搜索路径**:根据上述条件,数据库会选择最有效的数据搜索路径,可能包括全表扫描、索引...

    java sql2000数据库连接包

    这个连接包,通常被称为JDBC驱动程序,是Java Database Connectivity (JDBC) API的一部分,允许Java开发者编写能够访问、查询和操作SQL Server 2000数据库的代码。在Java中,JDBC驱动程序分为四种类型,从Type 1到...

    informix sql性能分析

    在多表查询中,不同的连接策略对查询性能的影响也非常显著。Informix支持两种主要的连接方法: 1. **嵌套循环连接(Nested Loop Join)**: 这是最简单的连接方式,它首先遍历第一个表中的每一行,然后对于第一...

    ORACLE SQL性能优化系列

    两个语句所指的对象必须完全相同。 C. 两个 SQL 语句中必须使用相同的名字的绑定变量(bind variables)。 三、选择最有效率的表名顺序 ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM ...

    SQL Server数据库性能的影响因素及性能优化路径.pdf

    在SQL Server中,DML触发器的实现使用两个逻辑表DELETED和INSERTED。这两个表建立在数据库服务器的内存中,只有只读权限,其结构与触发器所在数据表结构相同。 2. T-SQL语法:SQL Server数据库采用的语言格式为T-...

Global site tag (gtag.js) - Google Analytics