v_sql := 'create table TD_DAT_YWFZ_XDBF_N_Y_back1 as select * from TD_DAT_YWFZ_XDBF_N_Y';
execute immediate v_sql;
v_endtime := sysdate;
dbms_output.put_line('v_endtime:'||v_endtime);
dbms_output.put_line('num:'||to_char(v_starttime-v_endtime,'00000000'));
过程的执行时间统计declarev_starttime date;v_endtime date;v_sql varchar2(2000) := '';beginv_starttime := sysdate;/****执行内容******/dbms_output.put_line('v_starttime:'||v_starttime);v_sql :
conn /as sysdba
desc dbms_profiler --先确认dbms_profiler包是否存在,如果不存在则通过下面的方式创建
@?/rdbms/admin/profload.sql
主要函数:
start_profiler 启动对该程式监控
stop_p.
按天
统计
SELECT TO_CHAR(T.create_time, 'YYYY-MM-DD') TIME, COUNT(*) COUNT
FROM test T
GROUP BY TO_CHAR(T.create_time, 'YYYY-MM-DD')
ORDER BY TO_CHAR(T.create_time, 'YYYY-MM-DD') ASC NULLS LAST按周
统计
SELECT
2、登陆数据库,
执行
如下语句,查看当前进行io操作的进程和模块名称:
SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,
se.MODULE,se.sql_address,st.event,st.p1text,si.physical_reads,si.block_changes
FROM v$session se,v$session_wait st,v$sess_io si,v$process pr
WHERE st.sid=se.sid AND st.sid=si.sid AND se.PADDR=pr.ADDR and se.username is not null AND se.sid>6
AND st.wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC
优化器使用
统计
信息来生成每个sql语句优的
执行
计划。准确的
统计
信息对于数据库的效率至关重要。
dba和程序开发人员都应该了解一些
统计
信息相关知识,这可以使你更好的理解为什么会生成一个你看到的
执行
计划,知其然且知其所以然。
统计
信息存储在数据字典里,可以使用数据字典视图访问这些信息。主要包括以下这些
统计
信息(代码块里是获取这些信息的方法):
表
统计
(行数,块数,平均行长度)
select table_name,num_rows,avg_row_len,block from dba_tables;
dba_tab_statistics具有dba_tables更详细的信
Oracle
查询
的
执行
过程可以大致分为以下几个步骤:
1. 语法解析:首先,
Oracle
会对
查询
语句进行语法解析,确保语句的正确性。如果语句中存在语法错误,
Oracle
会返回相应的错误信息。
2. 语义分析:在语义分析阶段,
Oracle
会验证
查询
语句中各个对象的存在性和访问权限,并进行表达式的类型检查。如果存在对象不存在或者权限不足等问题,
Oracle
会返回相应的错误信息。
3.
查询
优化器:在
查询
优化器阶段,
Oracle
会根据
查询
语句的复杂度和数据表的
统计
信息等因素,生成多个可能的
执行
计划。
执行
计划是一种描述
查询
执行
方式的逻辑和物理操作序列。
4.
执行
计划选择:在
执行
计划选择阶段,
Oracle
会评估每个生成的
执行
计划,并选择一个最优的
执行
计划。最优
执行
计划通常是根据成本估算模型选择的,即估计
执行
每个
执行
计划所需的资源消耗,并选择成本最低的
执行
计划。
5.
执行
计划
执行
:当最优
执行
计划确定后,
Oracle
将按照该计划开始
执行
查询
操作。
查询
操作可能涉及数据读取、排序、连接等操作,
Oracle
会根据
执行
计划中定义的逻辑和物理操作序列来完成这些操作。
6. 结果返回:当
查询
操作完成后,
Oracle
会将
查询
结果返回给客户端。如果
查询
结果较大,
Oracle
可能会使用临时表空间等机制来保存结果数据。
需要注意的是,以上步骤是一个简化的描述,实际
执行
过程中还涉及到缓存、锁定、并发控制等多个细节处理。此外,
Oracle
还提供了一些调优手段,如索引、分区等,可以进一步提升
查询
性能。