sql中有一些*/+ /*之类的符号是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/07/02 01:12:44
具体的顺序记不清楚了,但是大概好像是
SELECT first */+ attributeName /*
这样形式的sql。
请问里面的符号是什么意思呢?
对,就是叫hints。
大家能不能帮忙找一些系统的教怎么使用这些hints的教程?
或者是自己总结的也可以。
想系统地学习一下。
谢谢!

Oracle中这种东西叫做hint,是一种优化SQL的工具。不同的hint会导致不同的优化模式。
例如一句SQL可能这样写:
select a.id, a.name
from a, b
where a.date=b.date
假如这个语句执行起来很慢。我们就可以用hint指定某一种优化模式,使运行速度加快。比如说指定选用a表的a_indx这个索引,及b表的b_indx这个索引,可以写作
select /*+ index(a a_indx) index(b b_indx) */
a.id, a.name
from a, b
where a.date = b.date
这样就实现了对SQL的优化。除了index这个hint以外,还有all_rows, first_rows,等等。

这个网站提供一个教程:http://oracle.chinaitlab.com/optimize/14380.html

这个是制定使用哪个索引的,以提高查询速度。往往经常使用得表可能不止一个索引,但查询得时候要看你的查询条件来确定使用什么索引来提高查询效率。