WEB开发网
开发学院数据库Oracle ORACLE学习笔记--性能优化 阅读

ORACLE学习笔记--性能优化

 2007-05-08 12:10:58 来源:WEB开发网   
核心提示: 7.如何使用Hint提示在select/delete/update后写/*+ hint */如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1...注意/*和+之间不能有空格,如用hint指定使用某个索引select /*+ index(cb

7.如何使用Hint提示

在select/delete/update后写/*+ hint */

如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1...

注意/*和+之间不能有空格,如用hint指定使用某个索引

select /*+ index(cbotab) */ col1 from cbotab;

select /*+ index(cbotab cbotab1) */ col1 from cbotab;

select /*+ index(a cbotab1) */ col1 from cbotab a;

其中

TABLE_NAME是必须要写的,且如果在查询中使用了表的别名,在hint也要用表的别名来代替表名;

INDEX_NAME可以不必写,Oracle会根据统计值选一个索引;

如果索引名或表名写错了,那这个hint就会被忽略;

8.怎么样快速复制表或者是插入数据

快速复制表可以指定Nologging选项

如:Create table t1 nologging

as select * from t2;

快速插入数据可以指定append提示,但是需要注意noarchivelog模式下,默认用了append就是nologging模式的。 在archivelog下,需要把表设置程Nologging模式。

如insert /*+ append */ into t1

select * from t2

注意:如果在9i环境中并设置了FORCE LOGGING,则以上操作是无效的,并不会加快,当然,可以通过如下语句设置为NO FORCE LOGGING。

Alter database no force logging;

是否开启了FORCE LOGGING,可以用如下语句查看

SQL> select force_logging from v$database;

9.怎么避免使用特定索引

在很多时候,Oracle会错误的使用索引而导致效率的明显下降,我们可以使用一点点技巧而避免使用不该使用的索引,如:

表test,有字段a,b,c,d,在a,b,c上建立联合索引inx_a(a,b,c),在b上单独建立了一个索引Inx_b(b)。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:ORACLE 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接