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

SQL语句优化方法30例

在SQL语句优化过程中,我们经常会用到hint,现总结一下在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 BSEMPMS WHERE SEX='M';
9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
表明对表选择索引升序的扫描方法.
例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ from BSEMPMS WHERE DPT_NO='SCOTT';
10. /*+INDEX_COMBINE*/
为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式.
例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * from BSEMPMS
WHERE SAL<5000000 AND HIREDATE<SYSDATE;
11. /*+INDEX_JOIN(TABLE INDEX


相关文档:

sys.tables(sql server 2005)

为每个表对象返回一行。当前仅用于 sys.objects.type = U 的表对象。
列名 数据类型 说明
<继承的列>
 
有关此视图所继承的列的列表,请参阅 sys.objects
lob_data_space_id
int
一个非零值,是保存此表的 text、ntext 和 image 数据的磁盘空间(文件组或分区架构)的 ID。
0 = 表不包含 text、ntext ......

sys.columns (SQL Server 2005 )

为包含列的对象(如视图或表)的每列返回一行。下面是包含列的对象类型的列表。
表值程序集函数 (FT)
内联表值 SQL 函数 (IF)
内部表 (IT)
系统表 (S)
表值 SQL 函数 (TF)
用户表 (U)
视图 (V)
列名 数据类型 说明
object_id
int
此列所属对象的 ID。
name
sysname
列名。在对象中是唯一的。
column_id
in ......

搜集的一些LINQ to SQL的资料

MSDN: http://msdn.microsoft.com/en-us/library/bb386976.aspx (英文)
           http://msdn.microsoft.com/zh-cn/library/bb386976.aspx (中文)
ScottGu 的LINQ 系列:
Part 1: Introduction to LINQ to SQL
Part 2: Defining our Dat ......

SQL查询慢的48个原因分析


查询速度慢的原因很多,常见如下几种: 
  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 
  2、I/O吞吐量小,形成了瓶颈效应。 
  3、没有创建计算列导致查询不优化。 
  4、内存不足 
  5、网络速度慢 
  6、查询出的数据量过大(可以采用多 ......

oracle常用经典SQL查询

oracle常用经典SQL查询
常用SQL查询:
 
1、查看表空间的名称及大小
 
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
 
2、查看表空间物理文件的名称 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号