Oracle 10g中新的SQL优化
2007-05-06 12:07:30 来源:WEB开发网例如:SELECT /*+ SELECTIVITY ( [tablespec] sel ) */
然而,注意如果hints CARDINALITY 和 SELECTIVITY都定义在同样的一批表格,二者都会被忽略。
no_use_nl
Hint no_use_nl使CBO执行循环嵌套,通过把指定表格作为内部表格,把每个指定表格连接到另一原始行。通过这一hint,只有hash join和sort-merge joins会为指定表格所考虑。
例如:SELECT /*+ NO_USE_NL ( employees ) */ ...
no_use_merge
此hint使CBO通过把指定表格作为内部表格的方式,拒绝sort-merge把每个指定表格加入到另一原始行。
例如:SELECT /*+ NO_USE_MERGE ( employees dept ) */ ...
no_use_hash
此hint使CBO通过把指定表格作为内部表格的方式,拒绝hash joins把每个指定表格加入到另一原始行。
例如:SELECT /*+ NO_USE_HASH ( employees dept ) */ ...
no_index_ffs
此hint使CBO拒绝对指定表格的指定标签进行fast full-index scan。
Syntax: /*+ NO_INDEX_FFS ( tablespecindexspec ) */
no_index_ss
此hint使CBO拒绝对指定表格的指定标签进行skip scan。
Syntax: /*+ NO_INDEX_SS (tablespecindexspec ) */
no_star_transformation
此hint使CBO忽略star 询问信息。
Syntax: /*+ NO_STAR_TRANSFORMATION */
index_ss
此hint明确地为指定表格选择index skip scan。如果语句使用index range scan,Oracle将以对其索引值的升序排列来检查索引入口。在被分割的索引中,其结果为对每个部分内部的升序排列。
Syntax: /*+ INDEX_SS (tablespecindexspec) */
index_ss_asc
此hint明确地为指定表格选择index skip scan。如果语句使用index range scan,Oracle将以对其索引值的升序排列来检查索引入口。在被分割的索引中,其结果为对每个部分内部的升序排列。
Syntax: /*+ INDEX_SS_ASC (tablespecindexspec) */
index_ss_desc
此hint明确为指定表格选择index skip scan。如果语句使用index range scan,Oracle将以对其索引值的降序排列来检查索引入口。在被分割的索引中,其结果为对每个部分内部的降序排列。
Syntax: /*+ INDEX_SS_DESC (tablespecindexspec) */
cpu_costing
此hint为SQL语句打开CPU costing。这是对优化器的默认评估模式。优化器评估当执行给定查询时,数据库需要运行的IO操作数、IO操作种类、以及CPU周期数。
Syntax: /*+ CPU_COSTING (tablespecindexspec) */
no_cpu_costing
此hint为SQL语句关闭CPU costing。然后CBO使用IO cost模式,此模式忽略CPU花费,仅测量在single-block reads中的所有指标。
Syntax: /*+ NO_CPU_COSTING */
随着Oracle优化器越来越成熟,Oracle专家必须不断增加自己对调整SQL语句的工具储备。当然,讨论所有复杂的Oracle10g SQL新hints远远超出了本文的范围,你可以从Mike Ault的新书Oracle Database 10g New Features中获得关于Oracle10g的更多信息。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接