通过水疗中心,您可以根据各种更改类型(如初始化参数更改,优化器统计刷新和数据库升级)播放特定的
SQL或整个SQL负载,然后生成比较报告,帮助您评估它们的影响。
在Oracle数据库11 g之前的版本中,我必须捕获所有SQL语句,通过跟踪运行这些语句,
然后得到执行计划——这是一项极其耗时又极易出错的任务。有了新版本之后,我不需要再那样做了,
我改用非常简单而有效的SQL性能分析器。
- - -使用场景
1。数据库升级
2。实施优化建议
3。更改方案
4。收集统计信息
5。更改数据库参数
6。更改操作系统和硬件
创建表空间测试数据文件' E: \ APP \管理员\ ORADATA \ ORCL \ test01。DBF '
5000
大小autoextend在
下一个100最大容量无限的
程度管理当地autoallocate
部分,空间管理汽车;
create table t1
(
sid int not null,
sname varchar2 (10)
)
表空间测试;
-2. -循环导入数据
声明,,,,maxrecords常数int:=1000000;
,,,,我int:=1;
,,开始
,,,,因为我在1 . .maxrecords循环
,,,,,插入t1值(我ocpyang);
,,,,结束循环;
,,dbms_output。put_line(“成功录入数据!”);
,,提交;
,,结束,,
/
更新t1组sname=八罩莸膕id=500001;
更新t1组sname=澳暇┑膕id=600001;
——3。收集统计信息
exec dbms_stats.gather_table_stats(用户、T1的级联=祝辞真的)
改变系统冲洗shared_pool;
——4。执行查询
select count(*)从t1 sid<=100;
select count(*)从t1 sid<=500;
select count(*)从t1 sid> 50000;
——5。新建STS
开始,DBMS_SQLTUNE.DROP_SQLSET (
,,sqlset_name=比;“OCPYANG_STS”
,,);
,
/
开始,DBMS_SQLTUNE.CREATE_SQLSET (
,,sqlset_name=比;“OCPYANG_STS”,
,,sqlset_owner=比;“SYS”,
,,描述,=比;“ocpyangtest”);
,
/
——6。加载sql优化集
上设置serveroutput DECLARE
cur01 dbms_sqltune.sqlset_cursor;
BEGIN
开放cur01从表(dbms_sqltune选择价值(a)。select_cursor_cache
(
basic_filter=比;“sql_text“% t1%”和parsing_schema_name=癝YS”,
attribute_list=比;“所有”
),,
dbms_sqltune。load_sqlset (
sqlset_name=比;“OCPYANG_STS”,
populate_cursor=比;cur01);
关闭cur01;
,,
/
/* * * * * * * * *有两个参数值得特别说明:
1) SELECT_CURSOR_CACHE的第一个参数是basic_filter,它可以取的值有:
,sql_id,,,,,,,,,VARCHAR (13),
,force_matching_signature号码,
,sql_text,,,,,,,,CLOB,
,object_list,,,,,,sql_objects,
,bind_data,,,,,,,,生(2000),
,parsing_schema_name,,VARCHAR2 (30),
,模块,,,,,,,,,VARCHAR2 (48),
,行动,,,,,,,,,VARCHAR2 (32),
,elapsed_time,,,,,,数,
,cpu_time,,,,,,,,数,
,buffer_gets,,,,,,,数字,
,disk_reads,,,,,,,数,
,direct_writes,,,,,,数字,
,rows_processed,,,,,数,
,获取,,,,,,,,,数字,
,死刑,,,,,,,数,
,end_of_fetch_count,,,数,
,optimizer_cost,,,,,数,
,optimizer_env,,,,,,生(1000),
,优先级,,,,,,,,数,
,command_type,,,,,,数,
,first_load_time,,,,,VARCHAR2 (19),
,stat_period,,,,,,,数字,
,active_stat_period,,,数,
,null