扩大
缩小

管理用户和PROFILE ——管理PROFILE——使用PROFILE管理资源

 



在大而复杂的多用户数据库环境中,因为用户众多,所以系统资源可能会成为影响性能的主要瓶颈。为了有效利用系统资源,应该根据用户所承担的任务为其分配合理的资源。profile不仅用于管理口令,还可以用于管理用户资源。注意:如果使用profile管理资源,那么必须激活资源限制。

 

conn sys/sys as sysdba
alter system set resource_limit=true;

1.限制会话资源

限制会话资源是指在连接期间所占用的总计资源。当超过会话资源限制时,oracle会隐含断开用户会话。当连接到数据库时,oracle会为用户进程分配服务器进程;当用户发出sql语句时,服务器进程会执行该sql操作。为了有效利用cpu 和内存资源。应该对用户资源进行适当限制。为了限制会话资源,可以使用以下选项:

  • cpu_per_session:用于指定每个会话可占用的最大cpu时间(单位1/100秒)。
  • logical_reads_per_session:用于指定会话的最大逻辑读取次数。
  • private_sga:用于指定会话在共享池中可分配的最大总计私有空间。注意:该选项只适用于共享服务器模式。

composite_limit:用于指定会话的总计资源消耗,oracle会根据cpu_per_session,connect_time,logical_reads_per_session以及private_sge的求权结果取得总计服务单元。

例子:限制usertemp01会话占用cpu时间不超过50秒,逻辑读取次数不超过100次:

conn sys/sys as sysdba
create profile session_limit limit
cup_per_session 5000 logical_reads_per_session 100;
alter user usertemp01 profile session_limit;

2.限制调用资源

限制调用资源是指限制单条sql语句可占用的最大资源。当执行sql语句时,如果解析,执行或者提取阶段超出调用级资源限制,那么oracle会自动终止语句处理,并回退语句操作,oracle提供了一下两个限制调用资源的选项:

  • cpu_per_call:用于限制每次调用可占用的最大cpu时间。
  • logical_reads_per_call:用于限制每次调用的做的i/o次数。

例子:限制usertemp01的每次调用的最大cpu时间为2s,每次调用的最大逻辑次数10.

create profile call_limit limit
cup_per_call 200 logical_reads_call 10;
alter user usertemp01 profile call_limit;

3.限制其他资源

当使用profile管理资源时,除了可以限制会话级和调用级的资源以外,还可以设置其他资源限制。这些资源限制选项如下所示:

  • session_session_user:用于指定每个用户的最大并发会话个数。
  • connect_time:用于指定会话的最大连接时间(单位:分钟)。
  • idle_time:用于指定会话的最大空闲时间(单位:分钟)。

例子:限制usertemp01的最大并发会话个数3,会话的最大连接时间不超过30分钟,会话最大空闲时间不超过5分钟:

create profile other limit
session_per_user 3 connect_time 30 idle_time 5;
alter user usertemp01 profile other;

 

posted on 2013-05-31 20:57  LinuxPanda  阅读(1100)  评论(0编辑  收藏  举报

导航