在大型数据库中,用户众多,为了有效利用系统资源。应根据用户所承担任务的不同分配合理的资源。profile不仅可以管理用户密码,也可以管理用户资源。要使用profile管理资源,首先需要将RESOURCE_LIMIT参数修改为TRUE:
使用profile管理系统资源,常用的参数有:
SESSION_PER_USER 用户可以同时连接的会话数量。如果用户的连接数达到该限制,则不能继续登录。
CPU_PER_SESSION 限制用户在一次数据库会话期间可以使用的CPU时间,单位为百分之一秒。到达该值以后,会话会被终止。
CPU_PER_CALL 该参数用于限制每条sql语句所能使用的CPU时间。单位为百分之一秒。
LOGICAL_READS_PER_SESSION 限制每个会话所能读取的数据块数量。包括从内存中读取和从磁盘读取。
LOGICAL_READS_PER_CALL 限制每条sql所能读取的数据块数量。
PRIVATE_SGA 在共享服务器模式下,改参数限制用户的一个会话可以使用的内存SGA区的大小,单位会数据块。在专用服务器模式下,该参数无效。
CONNECT_TIME 限制每个用户连接到数据库的最长时间,单位为分钟,当连接时间超出改设置时,该连接终止。
IDLE_TIME 限制每个用户会话连接到数据库的最长时间。超过该空闲时间,会话会被终止。
COMPOSITE_LIMIT 该参数是一项由多个资源限制参数构成的复杂限制参数,利用该参数可以对所有的混合资源限定作用设置。
在创建profile的时候,对用户可以访问的系统资源进行如下限制:
大部分资源限制都可以在两个级别进行限制:会话级和调用级。会话级资源限制是对用户在一个会话过程中所使用的资源进行限制;调用级资源限制是对一个sql语句执行是所和使用的资源。
当一个会话或sql语句占用资源超过限制时,Oracle将会终止并回滚当前事务,然后返回错误信息。如果是会话及限制,还会终止会话。
SQL> show parameter resource_limit;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
resource_limit boolean FALSE
SQL> alter system set resource_limit=true;
系统已更改。
使用profile管理系统资源,常用的参数有:
SESSION_PER_USER 用户可以同时连接的会话数量。如果用户的连接数达到该限制,则不能继续登录。
CPU_PER_SESSION 限制用户在一次数据库会话期间可以使用的CPU时间,单位为百分之一秒。到达该值以后,会话会被终止。
CPU_PER_CALL 该参数用于限制每条sql语句所能使用的CPU时间。单位为百分之一秒。
LOGICAL_READS_PER_SESSION 限制每个会话所能读取的数据块数量。包括从内存中读取和从磁盘读取。
LOGICAL_READS_PER_CALL 限制每条sql所能读取的数据块数量。
PRIVATE_SGA 在共享服务器模式下,改参数限制用户的一个会话可以使用的内存SGA区的大小,单位会数据块。在专用服务器模式下,该参数无效。
CONNECT_TIME 限制每个用户连接到数据库的最长时间,单位为分钟,当连接时间超出改设置时,该连接终止。
IDLE_TIME 限制每个用户会话连接到数据库的最长时间。超过该空闲时间,会话会被终止。
COMPOSITE_LIMIT 该参数是一项由多个资源限制参数构成的复杂限制参数,利用该参数可以对所有的混合资源限定作用设置。
在创建profile的时候,对用户可以访问的系统资源进行如下限制:
create profile resource_limit limit -- 用户最多只能建立5个数据库会话
cpu_per_session unlimited -- 会话占用的总cpu时间不进行限制
cpu_per_call 100 -- 会话中每条sql最多占用100个单位的cpu时间
connect_time 60 -- 每个会话持续连接到数据库的时间为1小时
idle_time 30 -- 保持30分钟的空闲状态后会被断开
logical_reads_per_session unlimited -- 会话中读取的数据块不进行限制
logical_reads_per_call 1000;-- 会话中每条sql最多占用100个单位的cpu时间
大部分资源限制都可以在两个级别进行限制:会话级和调用级。会话级资源限制是对用户在一个会话过程中所使用的资源进行限制;调用级资源限制是对一个sql语句执行是所和使用的资源。
当一个会话或sql语句占用资源超过限制时,Oracle将会终止并回滚当前事务,然后返回错误信息。如果是会话及限制,还会终止会话。