`
lg___
  • 浏览: 2528 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

查询语句超慢问题的一种解决办法

sql 
阅读更多
昨天同事碰到一个怪异的问题,DAO里的一个简单查询方法在数据量为2000万左右的表中执行要花十几秒的时间,而在数据量小一些的表中则执行时间正常。这个问题乍一看明显是无索引或查询语句有问题,但对相应的表结构等查看了下,发现查询条件已经存在索引,而且同一个表,其它的方法执行速度是没问题的,把程序执行的SQL语言拷贝到sqlserver2008查询分析器中执行,也很快,这个就是问题的现象,试过换环境,换方法的执行地方,都如此。
下面是找了很久找到的问题,在查询语句的条件中,将查询条件
where column1='abc'
改为
 where column1 is not null and column1='abc'
后,查询速度马上提高,基本不用等待。经过大家的分析,问题为sqlserver 表中字段如果为空,那么这个字段的索引对这条数据是没有效果的,而今天发现问题的那张表刚好有个查询条件建索引了,单这个字段有一半左右的数据都为空,所以索引无效了;而SqlServer本身的查询分析器会自动对空值进行过滤,所以查询会很快,这也就是同样的SQL语句在程序中和直接在SqlServer中运行时间差别大的原因了,至此问题清楚了。
1
1
分享到:
评论
4 楼 haohao-xuexi02 2011-10-10  
细节决定成败。。。。
很多时候细节往往比那些大问题花的时间要多。。。
3 楼 lg___ 2011-10-10  
zhufeng1981 写道
soloker 写道
细节问题。。

谢谢分享,细节见功力。

2 楼 zhufeng1981 2011-10-10  
soloker 写道
细节问题。。

谢谢分享,细节见功力。
1 楼 soloker 2011-10-10  
细节问题。。

相关推荐

    查询慢sql语句消耗

    查询慢sql语句消耗 :1.查询定位当前sqlid 的执行慢在哪一步。2.查询历史sqlid 的执行慢在哪一步。3. 通过SQL Monitor 定位SQL的问题。

    oracle执行update语句时卡住问题分析及解决办法

    开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。 原因和解决方法 这种...

    子查询是指一条SELECT语句作为另一条SELECT语句的一部分,外层的SELCT语句称为外部查询,内层的SELECT语句称为内部查询(或子查询)

    子查询是SQL语言中一种重要的查询方式,它允许将一条SELECT语句作为另一条SELECT语句的一部分使用。这种结构化的设计使得数据库查询更为灵活和强大。具体而言,外层的SELECT语句被称为外部查询,而内层的SELECT语句...

    SQL查询语句大全集锦(超经典)

    ### SQL查询语句大全集锦(超经典) #### 一、简单查询 ##### (一)选择列表 在SQL中,选择列表(`SELECT`列表)是用于指定希望从数据库表中检索哪些列的重要组成部分。这一部分可以包含列名、表达式、常量或者函数...

    Oracle查询语句大全-精华版

    查询当前用户下的所有表是使用 Oracle 的一个基本操作,使用以下语句可以查询当前用户下的所有表: select * from tab; 其中,tab 是 Oracle 中的一个系统视图,用于显示当前用户下的所有表和视图。 七、显示当前...

    数据库SQL查询语句练习题.doc

    结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; sql 语句就是对数据库进行操作的一种语言。 常见语句 ...

    可视化sql查询语句生成器

    可视化SQL查询语句生成器是一种高效且用户友好的工具,专为那些不熟悉或不习惯编写SQL代码的用户设计。这种工具通常具有图形用户界面(GUI),允许用户通过直观的界面来构建复杂的查询,而无需直接输入SQL命令。在...

    学习SQL查询语句,首先必须解决一个问题,数据问题

    学习SQL查询语句,首先必须解决一个问题,数据问题。这里为大家准备了完整的几个表的数据

    XML查询语句转换成SQL语句的实现.pdf

    XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...

    postgresql greenplum建表语句超详细

    postgresql greenplum建表语句超详细 带说明 详细物理建模所需参数

    SQL Server中存储过程比直接运行SQL语句慢的原因

    在优化存储过程时,需要注意 Parameter sniffing 问题,可以通过使用 OPTION (RECOMPILE) 语句来解决这个问题。例如,原存储过程可以修改为: CREATE PROCEDURE [dbo].[pro_ImAnalysis_daily] @THEDATE VARCHAR(30)...

    sql查询语句集合,包括所有的查询语句

    sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合sql查询语句集合

    数据库查询指令:mysql查询语句汇总+编程知识+技术开发

    mysql查询语句汇总,数据库查询指令:mysql查询语句汇总+编程知识+技术开发;mysql查询语句汇总,数据库查询指令:mysql查询语句汇总+编程知识+技术开发;mysql查询语句汇总,数据库查询指令:mysql查询语句汇总+...

    SQL语句查询速度慢的48个原因

    1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足

    MySQL的SQL语句大小写不敏感问题解决方案

    MySQL 的 SQL 语句大小写不敏感问题是一个普遍存在的问题,特别是在 Linux 和 Windows 两种操作系统下。这个问题的产生是由于 MySQL 在不同的操作系统下对大小写的处理规则不同。在 Linux 下,数据库名、表名、列名...

    Oracle的分页查询语句.docx

    Oracle 的分页查询语句是数据库查询中的一种优化手段,用于控制查询结果集的大小,以提高查询效率。在 Oracle 中,分页查询语句可以使用 ROWNUM 和子查询来实现。本文将详细介绍 Oracle 分页查询语句的格式、优化...

    sql查询慢的原因,及解决方法

    sql 查询慢的原因是影响数据库性能的关键因素之一。了解这些原因可以帮助开发者和数据库管理员更好地优化查询性能,提高数据库系统的整体性能。本文将详细介绍 sql 查询慢的 48 个原因,并提供相应的解决方法。 1. ...

    SQL查询语句大全集锦(超经典)doc版最新版本

    是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 数据查询用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的...

Global site tag (gtag.js) - Google Analytics