oracle小白必背50条语句 oracle如何监控低性能sql,或者说用什么指令查看当前主机上哪些sql占用资源比较多?

[更新]
·
·
分类:互联网
2368 阅读

oracle小白必背50条语句

oracle如何监控低性能sql,或者说用什么指令查看当前主机上哪些sql占用资源比较多?

oracle如何监控低性能sql,或者说用什么指令查看当前主机上哪些sql占用资源比较多?

ORACLE的审计功能。V$SQL可以查看执行的SQL语句。 监控当前数据库谁在运行什幺SQL语句SELECTosuser,username,sql_textfromv$sessiona,v$sqltextbwherea.sql_address,piece; 同时你可以指定某一个SID

Oracle硬解析与软解析分别是什么?

Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析。在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也就是每次执行都需要进行硬解析。还有一类就是DML语句(数据操纵语言),他们会根据情况选择要么进行硬解析,要么进行软解析。要么将SQL文本等装载进library cache中的heap中。
1.硬解析
硬解析一般包括下面几个过程:
1)对SQL语句进行语法检查,看是否有语法错误。比如select from where 等的拼写错误,如果存在语法错误,则推出解析过程;
2)通过数据字典(row cache),检查SQL语句中涉及的对象和列是否存在。如果不存在,则推出解析过程。
3)检查SQL语句的用户是否对涉及到的对象是否有权限。如果没有则推出解析;
4)通过优化器创建一个最优的执行计划。这个过程会根据数据字典中的对象的统计信息,来计算多个执行计划的cost,从而得到一个最优的执行计划。这一步涉及到大量的数据运算,从而会消耗大量的CPU资源;(library cache最主要的目的就是通过软解析来减少这个步骤);
5)将该游标所产生的执行计划,SQL文本等装载进library cache中的heap中。
2.软解析
所谓软解析,就是因为相同文本的SQL语句存在于library cache中,所以本次SQL语句的解析就可以去掉硬解析中的一个活多个步骤。从而节省大量的资源的耗费。
3.软软解析
所谓的软软解析,就是不解析。当设置了session_cached_cursors参数时,当某个session第三次执行相同的SQL语句时,则会把该SQL语句的游标信息转移到该session的PGA中。这样,当该session在执行该SQL语句时,会直接从PGA中取出执行计划,从而跳过硬解析的所有步骤。