昨天同事碰到一个怪异的问题,DAO里的一个简单查询方法在数据量为2000万左右的表中执行要花十几秒的时间,而在数据量小一些的表中则执行时间正常。这个问题乍一看明显是无索引或查询语句有问题,但对相应的表结构等查看了下,发现查询条件已经存在索引,而且同一个表,其它的方法执行速度是没问题的,把程序执行的SQL语言拷贝到sqlserver2008查询分析器中执行,也很快,这个就是问题的现象,试过换环境,换方法的执行地方,都如此。
下面是找了很久找到的问题,在查询语句的条件中,将查询条件
where column1='abc'
改为
where column1 is not null and column1='abc'
后,查询速度马上提高,基本不用等待。经过大家的分析,问题为sqlserver 表中字段如果为空,那么这个字段的索引对这条数据是没有效果的,而今天发现问题的那张表刚好有个查询条件建索引了,单这个字段有一半左右的数据都为空,所以索引无效了;而SqlServer本身的查询分析器会自动对空值进行过滤,所以查询会很快,这也就是同样的SQL语句在程序中和直接在SqlServer中运行时间差别大的原因了,至此问题清楚了。
分享到:
相关推荐
本教程将探讨如何解决MySQL大数据量下LIKE查询慢的问题,并介绍一种JAVA模拟LIKE的方法来提升查询效率。 首先,我们需要理解LIKE查询的工作原理。当使用LIKE查询时,如果模式以%开头或结尾,MySQL无法利用索引来...
本文将介绍几种实用的SQL高级查询语句,帮助解决实际工作中的问题。 ### 关键SQL语句示例解析 #### 示例1:分组并连接字符串 **SQL语句**: ```sql 1. SELECT C_HTBH, wmsys.wm_concat(C_YSRQ) FROM T_TABLE GROUP...
开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。 原因和解决方法 这种...
本文将详细介绍如何查看Oracle数据库中执行最慢和查询次数最多的SQL语句,以帮助DBA(数据库管理员)识别潜在的性能瓶颈。 首先,我们来看如何查询执行最慢的SQL语句。在Oracle中,可以使用`v$sqlarea`视图来获取...
Oracle 表删除大量数据后查询变慢问题分析 在 Oracle 数据库中,如果删除了大量数据(千万级别),可能会出现查询变慢的问题。下面我们将分析这个问题的原因,并提供解决方案。 问题的原因主要有两个方面: 1. 表...
SQL查询语句生成器是一种工具,它帮助用户无需手动编写复杂的SQL命令,即可自动生成所需的查询语句。这种工具在数据库应用中极为重要,尤其对于那些不熟悉SQL语法或者希望提高工作效率的用户来说,它是宝贵的资源。...
### SQL查询语句大全集锦(超经典) #### 一、简单查询 ##### (一)选择列表 在SQL中,选择列表(`SELECT`列表)是用于指定希望从数据库表中检索哪些列的重要组成部分。这一部分可以包含列名、表达式、常量或者函数...
SQL 查询语句大全是数据库领域中的一本经典资料,囊括了各种 SQL 查询语句的使用方法和示例代码。下面将对标题、描述、标签和部分内容进行详细的知识点解析。 标题:SQL 查询语句大全(集锦经典) * 该标题表明这...
查询当前用户下的所有表是使用 Oracle 的一个基本操作,使用以下语句可以查询当前用户下的所有表: select * from tab; 其中,tab 是 Oracle 中的一个系统视图,用于显示当前用户下的所有表和视图。 七、显示当前...
结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; sql 语句就是对数据库进行操作的一种语言。 常见语句 ...
在优化存储过程时,需要注意 Parameter sniffing 问题,可以通过使用 OPTION (RECOMPILE) 语句来解决这个问题。例如,原存储过程可以修改为: CREATE PROCEDURE [dbo].[pro_ImAnalysis_daily] @THEDATE VARCHAR(30)...
【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有...
XML 查询语句转换成 SQL 语句的实现 本文主要讨论将 XML 查询语句转换成 SQL 语句的实现。XML 已经成为 Internet 上数据交换的事实标准,特别是在 Web 数据挖掘技术中,对数据源的结构化需求导致人们对 XML 文档的...
本文档将围绕“PL/SQL常用查询语句”这一主题展开,详细介绍数据库查询的基础概念以及一系列实用的SQL查询技巧。通过本文的学习,初学者可以快速掌握常用的查询方法,并能够应用于实际的数据库操作中。 #### 一、...
mysql查询语句汇总,数据库查询指令:mysql查询语句汇总+编程知识+技术开发;mysql查询语句汇总,数据库查询指令:mysql查询语句汇总+编程知识+技术开发;mysql查询语句汇总,数据库查询指令:mysql查询语句汇总+...
MySQL 的 SQL 语句大小写不敏感问题是一个普遍存在的问题,特别是在 Linux 和 Windows 两种操作系统下。这个问题的产生是由于 MySQL 在不同的操作系统下对大小写的处理规则不同。在 Linux 下,数据库名、表名、列名...
Oracle 的分页查询语句是数据库查询中的一种优化手段,用于控制查询结果集的大小,以提高查询效率。在 Oracle 中,分页查询语句可以使用 ROWNUM 和子查询来实现。本文将详细介绍 Oracle 分页查询语句的格式、优化...
sql 查询慢的原因是影响数据库性能的关键因素之一。了解这些原因可以帮助开发者和数据库管理员更好地优化查询性能,提高数据库系统的整体性能。本文将详细介绍 sql 查询慢的 48 个原因,并提供相应的解决方法。 1. ...
是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 数据查询用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的...