尽量避免在SQL语句中使用OR
----start
在SQL语句中应该尽量避免使用OR,因为这样做会影响SQL语句的性能。考虑下面的情况:
CREATE TABLE USER
(
NAME VARCHAR(20) NOT NULL,---姓名
BIRTHDAY DATE---生日
);
现在有这样一个问题:让你查找一下生日是1949-10-1(共和国同龄人)或1978-12-18(十一届三中全会召开时间)的人,怎么办?
我们很自然就会把这句话翻译成如下SQL语句:
SELECT * from USER WHERE BIRTHDAY='1949-10-1' OR BIRTHDAY='1978-12-18'
这样做完全正确,可是性能不好,你的思想被这个问题束缚了,我们还可以这么写:
SELECT * from USER WHERE BIRTHDAY IN ('1949-10-1','1978-12-18');
有时候,我们不要把自己束缚在问题里面。
---更多参见:DB2 SQL 精要
----声明:转载请注明出处。
----last update at 2009.9.24
----write by wave at 2009.9.24
----end
相关文档:
在T-sql的写法上有很大的讲究,下面列出常见的要点:首先,DBMS处理查询计划的过程是这样的:
1、查询语句的词法、语法检查
2、将语句提交给DBMS的查询优化器
3、优化器做代数优化和存取路径的优化
4、由预编译模块生成查询规划
5、然后在合适的时间提交给系统处理执行
6、最后将执行结果返回给用户。
其次,看一下S ......
CareGroup 医疗组织负责保护2TB 的病人信息和相关数据的隐私及完整性。该组织位于波士顿,是Beth Israel Deaconess 医学中心(哈佛医学院的教学医院)以及另外三家地区医院的母公司。CareGroup 采用Microsoft® SQL Server™ 2005,将其数据存储于30个实例的390个数据库中。该组织希望将数据库升级到SQL Server 200 ......
“经过测试我们发现SQL Server 2008当中的备份压缩功能可以1-3倍的压缩比,从而极大的减少备份所需的磁盘空间。”Alexey Yeltsov, 微软系统管理员主管。
微软在全世界共有6万多名员工,在2006年的财政收入超过了500亿美金,与此同时也产生了大量内部数据,公司希望对这些数据进行集中以便提供客户的集成化视图。 ......
下载后解压缩就能直接使用了,但是是中文的,字体显示的不是很好,于是找到了换英文的办法:
由于1.5包含了多语言界面的支持,但是它是通过JVM来辨认系统语言的,所以当你的系统语言为中文的时候,它会使用中文界面。不过它的中文翻译并不完整,加上默认界面字体太小,使用中文会看着非常难受。如果想使用英文界面,需要修 ......
/********************************
功能:获取表的空间分布情况
**********************************/
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table tablespaceinfo   ......