|
3.2 如何杀掉吊死session
(1) 找出吊死session
Select sid,serial#,program,machine,lockwait from v$session;
(2) 杀死session
Svrmgrl>alter system kill session 'init1,init2';
其中init1为sid,init2为serial#。
3.3 如何修改字符集
以sys用户执行如下命令
Update props$ set value$='新字符集'
Where ltrim(name)='NLS_CHARACTERSET';
commit;
注意:如果有数据,不要修改数据集。
3.4 如何追加表空间
以sys用户:
Alter tablespace 表空间 add datafile 文件名(带路径)size Xm;
3.5 如何加大表的maxextents值
Alter table 表名 storage(maxextents 新值)
3.6 如何查询无效对象
(1) 以sys用户登录SQL Plus
(2) 查询无效对象
Select substr(object_name,1,30) object_name,object_type
from user_objects
where status ='INVALID'
(3) 恢复失效存储过程
对于存储过程,如果存储过程或函数脚本中某个表或所调用的存储过程被drop或重新编译,则此存储过程可能变为invalid,正常情况下,再次调用此存储过程时,系统会自动编译使其变为valid,也可以手工编译:Alter procedure 名称 compile;
3.7 怎样分析SQL语句是否用到索引
Oracle提供的策略分析器Explain plan能很好地分析SQL语句使用索引情况,分析步骤如下
(1) 检查当前用户下是否存在策略分析表plan_table
(2) 检查表结构是否正确(建立数据库时只有sys用户下存在此表),若没有,需要在当前用户下建此表:
CREATE TABLE PLAN_TABLE
(
STATEMENT_ID VARCHAR2(30),
TIMESTAMP DATE,
REMARKS VARCHAR2(80),
OPERATION VARCHAR2(30),
OPTIONS VARCHAR2(30),
OBJECT_NODE VARCHAR2(128),
OBJECT_OWNER VARCHAR2(30),
OBJECT_NAME VARCHAR2(30),
OBJECT_INSTANC NUMBER(38),
OBJECT_TYPE VARCHAR2(30),
OPTIMIZER VARCHAR2(255),
SEARCH_COLUMNS NUMBER(38),
ID NUMBER(38),
PARENT_ID NUMBER(38),
POSITION NUMBER(38),
COST NUMBER(38),
CARDINALITY NUMBER(38),
BYTES NUMBER(38),
OTHER_TAG VARCHAR2(255),
OTHER LONG
);
(3) 执行分析语句:
sql>delete from plan_table;
sql>explain plan for
sql>select * from tab where tname like 'T%';
sql>select object_name,options,operation from plan_table;
执行完上述三步,可查看“select * from tab where tname like 'T%'”语句where条件是否用到索引。 |
|