通过段调优顾问帮助解决行链接问题

--解决行链接问题
SQL> create tablespace hzqtbs datafile ‘/u01/app/oracle/oradata/prod/hzqtbs.dbf‘ size 600m;

Tablespace created.

SQL> create user hzq identified by hzq default tablespace hzqtbs quota unlimited on hzqtbs account unlock;

User created.

SQL> grant create session to hzq;

Grant succeeded.

SQL> grant resource to hzq;

Grant succeeded.

SQL> conn hzq/hzq
Connected.

create table test (id number,name varchar2(100));
begin
for i in  1..1000000 loop
insert into test values(i,‘user‘||i);
commit;
end loop;
end;
/
--通过更新使字段边长生成行链接
update test set name=‘userldsajflsadjfldsjfldsafdsahflsahfldsaflsajflkdajfjflajfldsakjflkdsajfldsajflsafjlasfadsafdsafsad‘;

--删除,重新收集手动运行顾问
DECLARE
BEGIN
dbms_advisor.delete_task (
task_name => ‘MYTEST Advice‘
);
END;
/

DECLARE
my_task_id number;
obj_id number;
my_task_name varchar2(100);
my_task_desc varchar2(500);
BEGIN
my_task_name := ‘MYTEST Advice‘;
my_task_desc := ‘Manual Segment Advisor Run‘;
---------
-- Step 1 create a task
---------
dbms_advisor.create_task (
advisor_name => ‘Segment Advisor‘,
task_id => my_task_id,
task_name => my_task_name,
task_desc => my_task_desc);
---------
-- Step 2 create a object
---------
dbms_advisor.create_object (
task_name => my_task_name,
object_type => ‘TABLE‘,
attr1 => ‘HZQ‘,
attr2 => ‘TEST‘,
attr3 => NULL,
attr4 => NULL,
attr5 => NULL,
object_id => obj_id);
---------
-- Step 3
---------
dbms_advisor.set_task_parameter(
task_name => my_task_name,
parameter => ‘recommend_all‘,
value => ‘TRUE‘);
---------
-- Step 4
---------
dbms_advisor.execute_task(my_task_name);
END;
/

--查看看行链接问题
SELECT
‘Task Name : ‘ || f.task_name || chr(10) ||
‘Segment Name : ‘ || o.attr2 || chr(10) ||
‘Segment Type : ‘ || o.type || chr(10) ||
‘Partition Name : ‘ || o.attr3 || chr(10) ||
‘Message : ‘ || f.message || chr(10) ||
‘More Info : ‘ || f.more_info TASK_ADVICE
FROM dba_advisor_findings f
,dba_advisor_objects o
WHERE o.task_id = f.task_id
AND o.object_id = f.object_id
ORDER BY f.task_name;

select
‘Task Name : ‘ || f.task_name || chr(10) ||
‘Start Run Time : ‘ || TO_CHAR(execution_start, ‘dd-mon-yy hh24:mi‘) || chr (10) ||
‘Segment Name : ‘ || o.attr2 || chr(10) ||
‘Segment Type : ‘ || o.type || chr(10) ||
‘Partition Name : ‘ || o.attr3 || chr(10) ||
‘Message : ‘ || f.message || chr(10) ||
‘More Info : ‘ || f.more_info || chr(10) ||
‘------------------------------------------------------‘ Advice
FROM dba_advisor_findings f
,dba_advisor_objects o
,dba_advisor_executions e
WHERE o.task_id = f.task_id
AND o.object_id = f.object_id
AND f.task_id = e.task_id
AND e. execution_start > sysdate - 1
AND e.advisor_name = ‘Segment Advisor‘
ORDER BY f.task_name;

ADVICE
----------------------------
Task Name : MYTEST Advice
Start Run Time : 18-may-16 22:53
Segment Name : TEST
Segment Type : TABLE
Partition Name :
Message : The free space in the object is less than 10MB.
More Info : Allocated Space:167772160: Used Space:165481507: Reclaimable Space :2290653:
------------------------------------------------------

Task Name : MYTEST Advice
Start Run Time : 18-may-16 22:53

ADVICE
-------------------------------------------------------
Segment Name : TEST
Segment Type : TABLE
Partition Name :
Message : The object has chained rows that can be removed by re-org.
More Info : 46 percent chained rows can be removed by re-org.

--有46%的行链接可以被remove,解决行链接的方法是通过move表来实现,但是表move后表的索引会失效,需要重建索引,行移动需要很多的表空间,建议表空间空余空间大于表的大小。
SQL> create index idx_test on test(id);

Index created.

SQL> conn / as sysdba
Connected.
SQL> select owner,index_name,status from dba_indexes where table_name=‘TEST‘;

OWNER                   INDEX_NAME              STATUS
------------------------------ ------------------------------ --------
HZQ                   IDX_TEST               UNUSABLE

SQL> alter index hzq.IDX_TEST rebuild;

Index altered.

--删除,重新收集手动运行顾问
DECLARE
BEGIN
dbms_advisor.delete_task (
task_name => ‘MYTEST Advice‘
);
END;
/

DECLARE
my_task_id number;
obj_id number;
my_task_name varchar2(100);
my_task_desc varchar2(500);
BEGIN
my_task_name := ‘MYTEST Advice‘;
my_task_desc := ‘Manual Segment Advisor Run‘;
---------
-- Step 1 create a task
---------
dbms_advisor.create_task (
advisor_name => ‘Segment Advisor‘,
task_id => my_task_id,
task_name => my_task_name,
task_desc => my_task_desc);
---------
-- Step 2 create a object
---------
dbms_advisor.create_object (
task_name => my_task_name,
object_type => ‘TABLE‘,
attr1 => ‘HZQ‘,
attr2 => ‘TEST‘,
attr3 => NULL,
attr4 => NULL,
attr5 => NULL,
object_id => obj_id);
---------
-- Step 3
---------
dbms_advisor.set_task_parameter(
task_name => my_task_name,
parameter => ‘recommend_all‘,
value => ‘TRUE‘);
---------
-- Step 4
---------
dbms_advisor.execute_task(my_task_name);
END;
/

SQL> select
‘Task Name : ‘ || f.task_name || chr(10) ||
‘Start Run Time : ‘ || TO_CHAR(execution_start, ‘dd-mon-yy hh24:mi‘) || chr (10) ||
‘Segment Name : ‘ || o.attr2 || chr(10) ||
‘Segment Type : ‘ || o.type || chr(10) ||
‘Partition Name : ‘ || o.attr3 || ch  2    3    4    5    6  r(10) ||
‘Message : ‘ || f.message || chr(10) ||
‘More Info : ‘ || f.more_info || chr(10) ||
‘------------------------------------------------------‘ Advice
FROM dba_advisor_findings f
,dba_advisor_objects o
,dba_advisor_executions e
WHERE o.task_id = f.ta  7    8    9   10   11   12   13  sk_id
AND o.object_id = f.object_id
AND f.task_id = e.task_id
AND e. execution_start > sysdate - 1
AND e.advisor_name = ‘Segment Advisor‘
ORDER BY f.task_name; 14   15   16   17   18  

ADVICE
----------------------------------------------------
Task Name : MYTEST Advice
Start Run Time : 18-may-16 23:07
Segment Name : TEST
Segment Type : TABLE
Partition Name :
Message : The free space in the object is less than 10MB.
More Info : Allocated Space:134217728: Used Space:126002153: Reclaimable Space :8215575:
------------------------------------------------------

--结果没有显示行链接问题
时间: 2024-10-19 03:25:58

通过段调优顾问帮助解决行链接问题的相关文章

通过段调优顾问回收大表的分配空间和高水位线

--通过段调优顾问回收大表的分配空间和高水位线 --创建用户 SQL> create tablespace hzqtbs datafile '/u01/app/oracle/oradata/prod/hzqtbs.dbf' size 30m; Tablespace created. SQL> create user hzq identified by hzq default tablespace hzqtbs quota unlimited on hzqtbs account unlock;

系统调优:如何解决系统报错too many open files瓶颈

一.检查系统版本是否手工升级 [[email protected] ~]# uname -r   linux的内核版本号 2.6.32-358.el6.x86_64 [[email protected] ~]# cat /proc/version Linux version 2.6.32-358.el6.x86_64  [[email protected] ~]# cat /etc/issue  系统安装时默认的发行版本 CentOS release 6.4 (Final) [[email pr

JVM虚拟机性能监控与调优(JDK命令行、JConsole)

很多资料在介绍JDK命令行工具时并不是在Java8环境下,因此还在使用过时的永久区系列的参数,给一些读者造成困难. Java8使用Metaspace(元空间)代替永久区,对于64位平台,为了压缩JVM对象中的_klass指针的大小,引入了类指针压缩空间(Compressed Class Pointer Space) .关于这点,可以参考博客https://blog.csdn.net/liang0000zai/article/details/51168095. 1. JDK命令行工具 在JDK的开

Spark性能调优之道——解决Spark数据倾斜(Data Skew)的N种姿势

原文:http://blog.csdn.net/tanglizhe1105/article/details/51050974 背景 很多使用Spark的朋友很想知道rdd里的元素是怎么存储的,它们占用多少存储空间?本次我们将以实验的方式进行测试,展示rdd存储开销性能. 关于rdd的元素怎么存储,Spark里面实现了好几种不同类型的rdd,如最常见的MapPartitionsRDD,它处理map,filter,mapPartition等不引起shuffle的算子:再如ShuffledRDD它由s

【oracle11g,13】表空间管理2:undo表空间管理(调优) ,闪回原理

一.undo空间原理: dml操作会产生undo数据. update时,sever process 会在databuffer 中找到该记录的buffer块,没有就从datafile中找并读入data buffer.在修改之前,原始数据先放到undo段,并在数据块头记录undo段(acitve 状态)中该数据块的位置,读写这个块时会占用事务槽,会将该事务号记录在数据块的头部.然后在进行update,并将该块放到dirty list检查点队列,等待dbwr进行写操作. 二.创建新的undo表空间替换

性能测试分析与性能调优诊断--史上最全的服务器性能分析监控调优篇

一个系统或者网站在功能开发完成后一般最终都需要部署到服务器上运行,那么服务器的性能监控和分析就显得非常重要了,选用什么配置的服务器.如何对服务器进行调优.如何从服务器监控中发现程序的性能问题. 如何判断服务器的瓶颈在哪里等 就成为了服务器性能监控和分析时重点需要去解决的问题了. 1     服务器的性能监控和分析 1.1      Linux服务器的性能指标监控和分析 1.1.1       通过vmstat深挖服务器的性能问题 1.1.2       如何通过mpstat 分析服务器的性能指标

SQL调优

# 问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一.系统优化中一个很重要的方面就是SQL语句的优 化.对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的 SQL语句,提高系统的可用性. 在多数情况下,Oracle

Java SE和Java EE应用的性能调优

凡事预则立,不预则废,和许多事情一样,Java性能调优的成功,离不开行动计划.方法或策略以及特定的领域背景知识.为了在Java性能调优工作中有所成就,你得超越"花似雾中看"的状态,进入"悠然见南山"或者已然是"一览众山小"的境界. 这三个境界的说法可能让你有些糊涂吧,下面进一步解释. 花似雾中看(I don't know what I don't know).有时候下达的任务会涉及你所不熟悉的问题域.理解陌生问题域首先面临的困难就是如何竭尽所能地

Spark性能调优——扩展篇

本文要解决的问题: 从更深层次考虑,对Spark进行性能调优. 目的 继基础篇分析了开发调优与资源调优之后,本文作为拓展篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题. 数据倾斜调优 简述 有时候,大家可能会遇到大数据开发过程中一个比较棘手的问题,那就是数据倾斜,此时Spark作业的性能会比预期差很多,数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能. 数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢.