SQL Server性能调优杂记(三)

这个例子和上面一个例子结果相反。

SQL文1

declare @CWB_NO varchar(50)
set @cwb_no='31301379874'
SELECT   a.AWB_NO,
  a.BWB_NO,
  a.CWB_NO,
  a.ORIGIN,
  a.DEST,
  a.MODIFY_ON,
  a.CREATED_ON,
  a.CONSIGNOR_CUSTOMER_CODE,
  a.CONSIGNOR_CODE, 
  a.CONSIGNOR_NAME,
  a.CONSIGNEE_NAME,
  a.CWB_STATUS,
  a.CWB_TYPE,
  ISNULL(a.PCS, 0) AS PCS,
  a.BWBLIST,
  b.PWEIGHT  
FROM    TB_CWB AS a
LEFT JOIN  TB_CWBWEIGHT AS b
ON a.CWB_NO = b.CWB_NO
AND b.AVAILABLE = 'Y' 
WHERE    a.AVAILABLE = 'Y'
AND (a.CWB_NO = @CWB_NO OR
                                     (( @CWB_NO IS NULL)
AND (a.AWB_NO = NULL OR NULL IS NULL)
AND (a.BWB_NO = NULL OR NULL IS NULL)
AND (a.IE_TYPE = NULL OR NULL IS NULL)
AND (a.CREATED_ON >= NULL OR NULL IS NULL)
AND (a.CREATED_ON <= NULL OR NULL IS NULL)
AND (a.PAYMENT = NULL OR NULL IS NULL)
AND (a.ORIGIN = NULL OR NULL IS NULL)
AND (a.DEST = NULL OR NULL IS NULL)
AND (a.CONSIGNOR_CUSTOMER_CODE = NULL OR NULL IS NULL)
AND (a.CONSIGNOR_NAME LIKE '%' + NULL + '%' OR NULL IS NULL)
AND (a.CONSIGNEE_NAME LIKE '%' + NULL + '%' OR NULL IS NULL)
AND (a.CWB_TYPE = NULL OR NULL IS NULL)))

时间: 2024-10-03 16:32:28

SQL Server性能调优杂记(三)的相关文章

SQL Server性能调优杂记(一)----傻瓜机的失效效应

最近,下面的一个项目遇到紧急问题,我这匹老马也要和年轻人一起奋斗一下.问题是当把一倍压力 数据灌入数据库,很多查询都奇慢无比. 说道这里必须要说一下性能问题的基本准则.性能问题 Tunning的次序 1)架构设计(软件架构和数据库设计,糟糕的设计几乎是致命的) 2)代码缺 陷(导致性能问题的90%) 3)增加索引(这个是要根据实际情况来确定) 4)资源调优(CPU- >内存->Disk IO) 这里网络不是考虑因素. 把程序的SQL文拿出来一看,有的一看一 堆子查询构成的JOIN,基本上一眼就

SQL Server性能调优杂记(四)

系统上线完,性能问题往往是Warranty和后期维护的一个重要问题. 这些天,客户又来反映, 有一个查询非常慢.这个查询用的是主关键字查询,由于主键是聚集索引,而且又做了碎片处理.应该是 非常快.但是看到的现象就是很慢(10秒左右,最差有18秒之多).排除了硬件.资源锁定等问题,还不 用到达Database端的Tunning级别.基本判断和SQL文有关,要细看SQL文的执行计划. 首先把SQL 文找出来 SELECT a.AWB_NO, a.BWB_NO, a.CWB_NO, a.ORIGIN,

SQL Server性能调优杂记(二)----傻瓜机的失效效应续

上文说道了失效效应.只想说明在Performance Tunning方面只能根据情况来寻求原因并解决.这是一 个有意思的过程.大原则是经验,帮助我们少犯错误.因此,糟糕的设计,必然导致性能问题.没有经验 的程序员必然会写出糟糕的代码.但是良好的设计可以弥补程序员的经验不足.这个到此打住,这个 topic涉及品质管理,实在太大了. 再看一例,失效效应的体现. 还是上文数说道了2种SQL文 写法产生的执行计划.我选用一台双核的PC,相当于2个单核CPU. 有一个大表TB_CWB.记录约30 -40万

SQL Server 性能调优(一)——从等待状态判断系统资源瓶颈

原文:SQL Server 性能调优(一)--从等待状态判断系统资源瓶颈 通过DMV查看当时SQL SERVER所有任务的状态(sleeping.runnable或running) 2005.2008提供了以下三个视图工详细查询: DMV 用处 Sys.dm_exec_requests 返回有关在SQL Server中执行的每个请求的信息,包括当前的等待状态 Sys.dm_exec_sessions 对于每个通过身份验证的会话都返回相应的一行.此时图是服务器范围的视图.此视图首先可以查到服务器负

SQL Server 性能调优之查询从20秒至2秒的处理方法

一.需求 需求很简单,就是需要查询一个报表,只有1个表,数据量大约60万左右,但是中间有些逻辑. 先说明一下服务器配置情况:1核CPU.2GB内存.机械硬盘.Sqlserver 2008 R2.Windows Server2008 R2 SP1和阿里云的服务器,简单说就是阿里云最差的服务器. 1.原始表结构 非常简单的一张表,这次不讨论数据冗余和表字段的设计,如是否可以把Project和Baojian提出成一个表等等,这个是原始表结构,这个目前是没有办法改变的. 2.查询的sql语句为 sele

SQL Server 性能调优培训引言

原文:SQL Server 性能调优培训引言      大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录.       作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤浅,博而不专,到现在我才发现自己的兴趣所在,于是我通过网络找了各种MS SQL技术的相关文档,总觉得讲得比较干涩,没有一个系统性,今年3月底我无意浏览到一个网站提供免费的性能调优的半年培训(http://www.sqlpassion.at/academy/performance

SQL Server性能调优之缓存

在执行任何查询时,SQL Server都会将数据读取到内存,数据使用之后,不会立即释放,而是会缓存在内存Buffer中,当再次执行相同的查询时,如果所需数据全部缓存在内存中,那么SQL Server不会产生Disk IO操作,立即返回查询结果,这是SQL Server的性能优化机制. 一,主要的内存消费者(Memory Consumer) 1,数据缓存(Data Cache) Data Cache是存储数据页(Data Page)的缓冲区,当SQL Server需要读取数据文件(File)中的数

SQL Server 性能调优1

server|性能 1. 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的响应速度:在数据窗口使用SQL时,尽量把使用的索引放在选择的首列:算法的结构尽量简单:在查询时,不要过多地使用通配符如SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1:在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300 CO

mysql监控、性能调优及三范式理解

原文:mysql监控.性能调优及三范式理解 1监控          工具:sp on mysql     sp系列可监控各种数据库   2调优 2.1 DB层操作与调优               2.1.1.开启慢查询                             在My.cnf文件中添加如下内容(如果不知道my.cnf的路径可使用find / -name my.cnf进行查找):                             在mysqld下添加