易截截图软件、单文件、免安装、纯绿色、仅160KB

高级SQL 2

1 用UNION替换OR (适用于索引列)
通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意, 以上规则只针对多个索引列有效.
如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低. 在下面的例子中, LOC_ID 和REGION上都建有索引.
高效: SELECT LOC_ID , LOC_DESC , REGION from LOCATION WHERE LOC_ID = 10 UNION SELECT LOC_ID , LOC_DESC , REGION from LOCATION WHERE REGION = “MELBOURNE”;
低效: SELECT LOC_ID , LOC_DESC , REGION from LOCATION WHERE LOC_ID = 10 OR REGION = “MELBOURNE”;
如果你坚持要用OR, 那就需要返回记录最少的索引列写在最前面.
2 用>=替代>
高效:
SELECT * from EMP WHERE DEPTNO >=4 ;
低效:
SELECT * from EMP WHERE DEPTNO >3 ;
两者的区别在于, 前者DBMS将直接跳到第一个DEPT等于4的记录而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录.
3 避免在索引列上使用计算.
WHERE子句中,如果索引列是函数的一部分.优化器将不使用索引而使用全表扫描. 举例:
低效:
SELECT … from DEPT WHERE SAL * 12 > 25000;
高效:
SELECT … from DEPT WHERE SAL > 25000/12;
4 用EXISTS替换DISTINCT:
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT. 一般可以考虑用EXIST替换, EXISTS 使查询
更为迅速,因为RDBMS核心模块将在子查询的条件一旦满足后,立刻返回结果. 例子:
(低效): SELECT DISTINCT DEPT_NO,DEPT_NAME from DEPT D , EMP E
WHERE D.DEPT_NO = E.DEPT_NO ;
(高效): SELECT DEPT_NO,DEPT_NAME from DEPT D WHERE EXISTS ( SELECT * from EMP E WHERE E.DEPT_NO = D.DEPT_NO);


相关文档:

让SQL SERVER突破2G内存限制


32
位的操作系统只能用
4G
的内存(不确定这句话是否正确),因为
2

32
次方是
4G
。默认的情况下,操作系统给自己留了
2G
,剩下的
2G
给应用程序。所以,每个应用程序所能使用的内存,最大不超过
2G
。据说可以改
WINDOWS

BOOT.INI
,强制操作系统只使用
1G
,即使这样,应用程序也至多是 ......

5本经典SQL电子书


SQL宝典

SQL必知必会第三版

SQL入门经典第四版

Sams Teach Yourself SQL in 10 Minutes Third Edition

SQL The Complete Reference

......

sql各种语句的完整语法

下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-nam ......

SQL 2005溢用之:分拆列值

问题描述:
有表tb, 如下:
id          values
----------- -----------
1           aa,bb
2           aaa,bbb,ccc
欲按,分拆values列, 分拆后结果如下:
id& ......

MS SQL Server2000 在tomcat下的数据源配置

MS SQL Server2000 数据源配置
(注:sqljdbc.jar下载不到的话,找我索取pengqinghui110@126.com)
1、在项目的WebRoot下的META-INF中新建context.xml文件。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/sqlserver"
   &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号