我們公司數據庫(Oracle9i)資料量越來越龐大,以前執行很快的SQL語句,現在變得很慢,檢查發現,原來數據庫自動執行最優化索引的語句,現在變成全表掃描,請問是否做一次索引rebuild及table的analyze就可以改善了呢,我問過以前的DBA,他們說不能做analyze,做完以後程序中以往正常執行的sql語句效能會變差。我現在開發程序要用的sql語句現在都執行不出結果,不知該怎麽辦,請教各位大蝦給出寶貴意見。
解决方案 »
- 用SQL语句或游标完成以下题目
- 怎么解决oracle触发器不能对本表操作问题?
- ORACLE的init.ora中关于progresses和sessions参数的关系,请说详细点。
- 关于索引和唯一约束的问题
- oracle 中有没有与 sql server 中@@rowcount类似的功能参数,或有其它的方式实现相同的功能。
- 怎么插入时间数据?
- 如何修改oracle数据库中表的列名......
- cursor 的问题?在等你..
- Sql server中的语法如何转成oracle中的,问题如下
- oracle7i数据导入oracle9i 出现字符集转换错误怎么解决呀
- 查询速度的怪异问题。
- putty远程链接上unix服务器,如何操作安装在上面的PostgreSQL数据库?
客户7月份的结算,整了半个月才给搞定!就是批次太慢了,一条数据就要40多分钟!
跟你一样,也是表数据太大,查看执行计划走的是全表扫描,可是表上有index的,原来都是走的index,我查看也是发现有表的统计信息:select * from user_tables where user_table=upper('表') and num_rows is not null;用提示hints强制查询走index也不行,还是全表扫描最后,我的处理是:把表给drop了,再重新创建该表,然后跑批次的时候就走的index了估计是表有原来的统计信息,将统计信息删除了,也许就没事了
analyze table table_name delete STATISTICS;