调节Shared_Pool

简介:
1. Shared Pool查看
show parameter shared; 查看shared pool大小
alter system  set shared_pool_size=600M;  --修改shared pool大小

相关参数查看:
select *  from v$sysstat;
select *  from v$sysstat  where  name= 'parse count (hard)';
select * from v$sysstat where name like '%hard%';
注意其中的parse count (hard)对应的value值

alter system  set cursor_sharing= 'similar';
alter system  set cursor_sharing= 'exact';

2. 使用绑定变量
select *  from emp  where empno = &empno;

重要实验:
准备表:
create  table m(x  int);

步骤1: 创建2个存储过程
create  or  replace  procedure proc1
as
begin
     for i  in 1..100000
    loop
         execute immediate
         'insert into m values(:x)' using i;
     end loop;
end;
/

create  or  replace  procedure proc2
as
begin
         for i  in 1..100000
        loop
                 execute immediate
                 'insert into m values('||i|| ')';
         end loop;
end;
/

步骤2:开启计时器
set timing  on

步骤3:执行第一个存储过程,查看执行时间
exec proc2;

步骤4:删除刚插入的语句
truncate  table m;

步骤5:执行第二个存储过程,查看执行时间
exec proc1;

在oracle9上面的评测结果:
@> set timing  on
@> exec proc2;

PL/SQL  procedure successfully completed.

Elapsed: 00:00:15.28
@> select  count(*)  from m;

     COUNT(*)
----------
        100000

Elapsed: 00:00:00.01
@> truncate  table m;

Table truncated.

Elapsed: 00:00:00.39
@> exec proc1;

PL/SQL  procedure successfully completed.

Elapsed: 00:00:05.21

结论: 比较绑定变量与不绑定变量的差异, 发现不绑定变量比绑定变量消耗时间多3-5倍。


本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/263847,如需转载请自行联系原作者
相关文章
|
4月前
|
缓存 关系型数据库 MySQL
整体方案 参数调优 innodb_buffer_pool_size
【8月更文挑战第14天】
47 0
|
7月前
|
监控 关系型数据库 MySQL
innodb_buffer_pool_instances 如何根据cpu和内存进行配置
`innodb_buffer_pool_instances` 是用于配置 InnoDB 缓冲池实例数的参数。每个实例都管理缓冲池的一部分,这有助于提高并发性能。通常,你可以根据系统的 CPU 和内存来调整这个参数,以获得更好的性能。 以下是一些建议和步骤,帮助你根据 CPU 和内存进行 `innodb_buffer_pool_instances` 的配置: 1. **了解系统资源:** 首先,了解系统的硬件资源,特别是内存和CPU。检查系统上可用的物理内存和 CPU 核心数量。 2. **考虑每个实例的大小:** 在配置 `innodb_buffer_pool_instances` 时,
254 0
|
缓存 关系型数据库 MySQL
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
1401 0
提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
|
存储 缓存 关系型数据库
磁盘&CPU调节(1)—Buffer Pool(五十四)
磁盘&CPU调节(1)—Buffer Pool(五十四)
|
存储 缓存 关系型数据库
多个buffer Pool实例 (3)—Buffer Pool(五十六)
多个buffer Pool实例 (3)—Buffer Pool(五十六)
|
SQL 数据库 索引
谁占用了我的Buffer Pool?
 我在做SQL Server 7.0技术支持的时候有客户问我,“我的SQL Server buffer pool很大,有办法知道是哪些对象吃掉我的buffer Pool内存么?比方说,能否知道是哪个数据库,哪个表,哪个index占用了buffer Pool么?”当时我没有找到这个问题的答案,但是我一直记着这个问题。
803 0