`
lg___
  • 浏览: 2471 次
  • 性别: 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的问题。

    SQL高级查询语句关键时候解决问题的SQL语句

    本文将介绍几种实用的SQL高级查询语句,帮助解决实际工作中的问题。 ### 关键SQL语句示例解析 #### 示例1:分组并连接字符串 **SQL语句**: ```sql 1. SELECT C_HTBH, wmsys.wm_concat(C_YSRQ) FROM T_TABLE GROUP...

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

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

    oracle查看执行最慢与查询次数最多的sql语句

    本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...

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

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

    SQL查询语句生成器

    SQL查询语句生成器是一种工具,它帮助用户无需手动编写复杂的SQL命令,即可自动生成所需的查询语句。这种工具在数据库应用中极为重要,尤其对于那些不熟悉SQL语法或者希望提高工作效率的用户来说,它是宝贵的资源。...

    开发等式比较SQL查询语句的一种模型推理方法.pdf

    在本文“开发等式比较SQL查询语句的一种模型推理方法”中,作者杨波和薛锦云探讨了一种用于构建等式比较SQL查询语句的模型推理技术。该技术的目标是帮助开发者遵循一定的规则,避免在开发过程中进行不必要的直觉推理...

    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查询语句,首先必须解决一个问题,数据问题。这里为大家准备了完整的几个表的数据

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    postgresql greenplum建表语句超详细

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

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

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

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    Oracle 表删除大量数据后查询变慢问题分析 在 Oracle 数据库中,如果删除了大量数据(千万级别),可能会出现查询变慢的问题。下面我们将分析这个问题的原因,并提供解决方案。 问题的原因主要有两个方面: 1. 表...

    PLSQL常用查询语句

    本文档将围绕“PL/SQL常用查询语句”这一主题展开,详细介绍数据库查询的基础概念以及一系列实用的SQL查询技巧。通过本文的学习,初学者可以快速掌握常用的查询方法,并能够应用于实际的数据库操作中。 #### 一、...

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

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

Global site tag (gtag.js) - Google Analytics