三十种SQL语句优化方法(1/4)

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';

首页 1 2 3 4 末页

时间: 2024-10-24 00:25:33

三十种SQL语句优化方法(1/4)的相关文章

PHP 函数,文件,sql 语句优化方法

.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个url文件时候的php教程版本问题: <?php echo file_get_contents("test.txt"); ?> file_get_contents() 函数把整个文件读入一个字符串中. 和 file() 一样,不同的是 file_get

SQL 语句优化方法30例_Mysql

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 BS

SQL语句优化方法30例(推荐)

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 BS

查询mysql中执行效率低的sql语句的方法_Mysql

一些小技巧1. 如何查出效率低的语句?在MySQL下,在启动参数中设置 --log-slow-queries=[文件名],就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为10秒)的SQL语句.你也可以在启动配置文件中修改long query的时间,如: 复制代码 代码如下:  # Set long query time to 8 seconds    long_query_time=8 2. 如何查询某表的索引?可使用SHOW INDEX语句,如: 复制代码 代码如

sql语句优化之SQL Server(详细整理)_MsSql

MS SQL Server查询优化方法 查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,

基于索引的SQL语句优化之降龙十八掌

  From:www.oracle.com.cn 基于索引的SQL语句优化之降龙十八掌 1        前言        2 2        总纲        2 3        降龙十八掌        3第一掌避免对列的操作        3第二掌避免不必要的类型转换        4第三掌增加查询的范围限制        4第四掌尽量去掉"IN"."OR"        4第五掌尽量去掉 "<>"        5第六

sql优化-mysql数据库sql语句优化,求大神!!!!

问题描述 mysql数据库sql语句优化,求大神!!!! SELECT DISTINCT uid, level,username,ansnum FROM test WHERE level=100 GROUP BY uid ORDER BY ansnum DESC LIMIT 12; uid.ansnum均已建索引,主要是GROUP BY uid导致特别慢,如何提速??? 解决方案 MySQL数据库SQL语句优化原则 解决方案二: 根据你的查询需求,没有特别好的优化办法.注意group by 和o

秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)

文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL 4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序 5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建

SQL语句优化

前一段时间一直在优化系统,看了一些关于SQL语句优化的东西,在这里分享一下. 1.统一SQL语句的写法 对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的. select*from dual select*From dual 其实就是大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析.生成2个执行计划.所以作为程序员,应该保证相同的查询语句在任何地方都一致,多一个空格都不行! 2.使用"临时表"暂存中间结果 简化SQL语句的重要方法就是采用临时表