Nat*_*apa 2 sql database oracle performance oracle10g
我有桌子,有数百万行,我需要加入做选择.响应时间不太好,我怎样才能改善其响应?我已经尝试添加索引到我选择的列,是否有一个工具,我可以用来优化SQL或如何诊断SQL的瓶颈并改善它?任何建议将非常感激.我正在使用oracle服务器10g并使用asp.net作为我的客户端.是否有任何其他类型的索引有助于具有数百万行的表?
你应该从EXPLAIN PLAN开始.
使用EXPLAIN PLAN语句确定Oracle Database执行指定SQL语句所遵循的执行计划.此语句将描述执行计划的每个步骤的行插入到指定的表中.您还可以将EXPLAIN PLAN语句作为SQL跟踪工具的一部分发出.
此语句还确定执行语句的成本.如果在表上定义了任何域索引,则还将插入用户定义的CPU和I/O开销.
然后编辑您的问题,并发布SQL语句和EXPLAIN PLAN的输出.
后来...
在这个问题上,我不会对你有太多帮助.269行,至少29个SELECT,并行查询,远程数据库,外连接(旧样式)等.
我能给你的最好建议是
该计划表具有比一般贴得更列.COST,CARDINALITY,BYTES和TIME列可能有助于确定调整工作的优先级.
您在该查询中有10个全表扫描.(查询计划中的"表访问已满".)这通常是一个不好的迹象; 全表扫描通常需要相对较长的时间才能运行.这并不总是一个坏兆头.对小型表的完全扫描可能比索引扫描更快.
首先获取查询中29个SELECT语句中每个语句的EXPLAIN PLAN输出.如果其中任何一个显示完整的表扫描,您可以使用合适的索引来提高其性能.(Oracle支持许多不同类型的索引.不要忽视多列索引的机会.)无论如何,EXPLAIN PLAN输出将帮助您识别29个SELECT中最慢的.
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |