首页 > 编程知识 正文

oracle数据库sql优化,mysql oracle性能

时间:2023-05-06 15:05:40 阅读:20176 作者:47

1 .选择适当的Oracle优化程序Oracle优化程序具有三种类型的: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) )。 要设置默认优化程序,请在init.ora文件中为OPTIMIZER_MODE参数声明各种声明,例如RULE、COST、CHOOSE、ALL_ROWS和FIRST_ROWS 当然你也在SQL语句中

1 .选择适当的Oracle优化程序

Oracle优化程序有三种类型的:

a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选项)。

要设置默认优化程序,请在init.ora文件中为OPTIMIZER_MODE参数声明各种声明,例如RULE、COST、CHOOSE、ALL_ROWS和FIRST_ROWS 当然,你也在SQL语句级别或对话(session )级别涵盖了它。

要使用基于成本的优化程序(CBO,基于成本的优化程序),必须经常运行analyze命令以提高数据库中对象统计信息的精度。

如果数据库的优化程序模式设置为“选项”(CHOOSE ),则实际的优化程序模式与是否运行了analyze命令无关。 如果table已经分析,优化程序模式将自动变为CBO;反之,数据库将采用RULE格式的优化程序。

默认情况下,Oracle采用选择优化程序。 为了避免不必要的“全表扫描”(full table scan ),必须尽量避免使用选择优化程序,并直接采用基于规则或基于成本的优化程序。

如何访问表

Oracle采用了记录在两种访问表中的方式:

a .全表扫描:

所有表扫描是指按顺序访问表中的每条记录。 Oracle通过一次读取多个数据块来优化所有表扫描。

使用ROWID访问表:

可以使用基于ROWID的访问方法(包括表中记录的物理位置信息)简化对表的访问。 Oracle采用索引(INDEX )来实现数据与存储数据的物理位置之间的联系。 索引通常可以快速访问ROWID,从而提高基于索引列的查询的性能。

3 .共享SQL语句

为了避免重复分析同一SQL语句,在第一次分析之后,Oracle将SQL语句存储在内存中。 此SQL语句允许所有数据库用户共享系统全局空间SGA (系统全局区SGA )中的共享池)中的内存。 因此,如果hhdjr执行SQL语句(有时称为游标)时与以前执行的语句完全相同,则Oracle可以立即获取已解析语句和最佳执行路径。 Oracle的此功能大大提高了SQL的执行性能,并节省了内存使用量。

不幸的是,Oracle只为简单的表提供缓存。 此功能不适用于多表连接查询。

数据库治理必须在init.ora中为此区域设置适当的参数。 此内存空间越大,可以保留更多语句。 当然,被共享的可能性也很高。

hhdjr向Oracle提交SQL语句,Oracle首先在此内存中查找相同的语句。

请注意,Oracle对两者进行了严格的匹配,并且SQL语句必须完全相同才能实现共享(包括空格、换行符等)。

的语句必须满足三个条件:

a .文字水平比较:

当前执行的语句和共享池中的语句必须完全相同。

例如:

SELECT * FROM EMP;

与以下不同:

SELECT * from EMP;

Select * From Emp;

SELECT * FROM EMP;

b .两个语句指向的对象必须完全相同:

例如:

如何访问用户对象名称

jack sal _ limit私人同步

work _ city公共同步

Plant_detail public synonym

Jill sal _ limit私人同步

work _ city公共同步

Plant_detail table owner

请考虑以下SQL语句是否可以在这两个用户之间共享:

c .两个SQL语句必须使用相同名称的绑定变量(bind variables )。

例如:

第一组中的两个SQL语句相同。 可以共享。 第二组的两个句子不同。 在运行时,可以为不同的绑定变量赋予相同的值。

a.select pin,namefrompeoplewherepin=: bl k1.pin;

select pin,namefrompeoplewherepin=: bl k1.pin;

b.select pin,namefrompeoplewherepin=: bl k1.ot _ ind;

select pin,name from people where pin=

:blk1.ov_ind;

本文原创发布了php中文网。 转载请注明出处。 谢谢您的尊重。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。