具体问题要具体分析。
你可以看看ORACLE的高性能SQL调整。
不过里面有些我也不太懂。
总之,大家共同讨论。
你可以看看ORACLE的高性能SQL调整。
不过里面有些我也不太懂。
总之,大家共同讨论。
解决方案 »
- 一个链接到oracle数据库的固定连接频繁操作数据库遇到的问题!!!!!!!!!!!!!!!!!
- 关于oralce系统权限的初级问题
- oracle 9.2.0.7 exp时出错,急啊
- 性能问题:ORACLE 9i2,我们的数据库数据和客户的是相同的(IMPORT过来的),但是相同的PROCEDURE用T_CURSOR返回记录做查询,我们这边只需要1,2
- 我寫了多個表的TRIGGER到一個SQL文件中去執行,發現ORACLE識別不了,都把代碼放在第一個TRIGGER中了!
- 如何建立dblink?如何使用?
- ...送分问题:请教如何写这个存储过程?...
- 初学者问题:SQL*PLUS WORKSHEET和oracle slq*plus这两个查询窗口有什么区别?
- 惜分飞Blog---Oracle异常恢复案例汇总
- oracle查询异常:No more data to read from socket
- 表 t1 ,字段 c1 ,c1不是主键所以值有重复。要选择c1的值(不重复),SQL语句如何写?拜托!
- 急:请问oracle中有没有sql server的自增自段和text类型,如果没有可以用什么代替呢?
可以使用v$sql.executions字段来察看语句的复用次数。
并切按照索引查询一定好的话
你可以使用 hintsselect /*+INDEX(table_name index_name)*/...可以去 www.leccotech.com
down 一个 sql expert 下来跑一下看看当然优化本身是一个很大的题目
只有针对特定的情况解决特定的问题才是比较容易的
利用在表上建立索引;
把经常在一起查询的表形成簇;
对SQL语句进行等价变换(改变SQL的执行顺序,简化SQL的操作)
看一下Oracle优化方面的资料吧
1、 由于排序、分组、子查询会进行临时表空间的读写操作,从数据库的查询性能考虑,应避免大数据量的排序、分组和子查询操作。
2、 查询条件中应尽量使用建有索引的列,同时不对列进行运算操作。
3、 不要使用不等于比较( “!=” 或 “<>” ) ,因为不等于比较不会使用索引进行比较(假如比较列上建有索引的话)。可采用 > or <。
查询所有部门(dept_id)不等于’0001’的服务单位(unit),推荐的语句(在列dept_id上建有索引:
SELECT * FROM unit WHERE dept_id > ‘0001’ OR sdept_id < ‘0001’;
而不要使用下面的语句:
SELECT * FROM unit WHERE dept_id <> ‘0001’。
4、 不使用NOT IN比较,同样NOT IN也不会使用索引。
5、 在WHERE子句中使用LIKE时,应避免在比较值前面使用“%”,如 SELECT * FROM unit WHERE sunit_name LIKE ‘%AAA%’,如果在sunit_name字段上建了索引,则此条件将不会使用索引。
上面提出一种优化方法
select /*+and_equal(table_name,primary_name,index_name)*/
2.多用like,,or,in,case等;
这些内容之后你就大致会知道数据库管理系统(无论Oracle也好,SQL Server
也好)是如何实现的,譬如一个复杂查询的系统一步步的运算或比较顺序,如
果你从这点着手,将可以得到非常高效的查询! 呵呵, 这也是偶的一点经
验之谈,以前也做过些实验和探讨,大家不妨琢磨琢磨, 呵呵。