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

SQL优化工具Lecco SQL Expert For Oracle

在SQL优化过程中常见Oracle HINT的用法:
1. /*+ALL_ROWS*/ 
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 
例如: 
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT'; 
2. /*+FIRST_ROWS*/ 
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 
例如: 
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT'; 
3. /*+CHOOSE*/ 
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量; 
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法; 
例如: 
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT'; 
4. /*+RULE*/ 
表明对语句块选择基于规则的优化方法. 
例如: 
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT'; 
5. /*+FULL(TABLE)*/ 
表明对表选择全局扫描的方法. 
例如: 
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM from BSEMPMS A WHERE EMP_NO='SCOTT'; 
6. /*+ROWID(TABLE)*/ 
提示明确表明对指定表根据ROWID进行访问. 
例如: 
SELECT /*+ROWID(BSEMPMS)*/ * from BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA' 
AND EMP_NO='SCOTT'; 
7. /*+CLUSTER(TABLE)*/ 
提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效. 
例如: 
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO from BSEMPMS,BSDPTMS 
WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO; 
8. /*+INDEX(TABLE INDEX_NAME)*/ 
表明对表选择索引的扫描方法. 
例如: 
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ from 


相关文档:

SQL TRUNCATE TABLE的用法

有时候我们会需要清除一个表格中的所有资料。要达到者个目的,一种方式是我们在 SQL DROP 那一页 看到的 DROP TABLE 指令。不过这样整个表格就消失,而无法再被用了。另一种方式就是运用 TRUNCATE TABLE 的指令。在这个指令之下,表格中的资料会完全消失,可是表格本身会继续存在。 TRUNCATE TABLE 的语法为下:
TRUNCATE ......

SQL UPDATE的用法

我们有时候可能会需要修改表格中的资料。在这个时候,我们就需要用到 UPDATE 指令。这个指令的语法是:
UPDATE "表格名"
SET "栏位1" = [新值]
WHERE {条件}
最容易了解这个语法的方式是透过一个例子。假设我们有以下的表格:
Store_Information 表格
store_name
Sales
Date
Los Angeles
$1500
Jan-05-1 ......

SQL DELETE from的用法

在某些情况下,我们会需要直接由数据库中去除一些资料。这可以藉由 DELETE from 指令来达成。它的语法是:
DELETE from "表格名"
WHERE {条件}
以下我们用个实例说明。假设我们有以下这个表格:
Store_Information 表格
store_name
Sales
Date
Los Angeles
$1500
Jan-05-1999
San Diego
$250
Jan-0 ......

SQL调优

SQL Server 查询
查询的时候应该尽量按照复合索引中的顺序来做条件查询;(比如IXC中spInterActiveInstance_GetByIDToStat条件and ProcessState<>99的位置);
如果在程序中有For或者是Foreach,在存储过程中又有IF Exists,那就要看是否可以在表中加入复合索引了,IF Not Exists可以转换为IF Exists来使用索引; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号