天天看點

oracle 禁用索引

同步資料的時候 有索引會比較慢 可以暫時禁用索引

--禁用索引

ALTER INDEX PK_T_AUTH_USERROLE_ID UNUSABLE;

--恢複索引

ALTER INDEX UK_T_AUTH_USER_EMP_CODE REBUILD;

--檢視索引狀态

select status  from user_indexes where index_name='UK_T_AUTH_USER_EMP_CODE';

1

oracle 禁用索引

1、查詢oracle的連接配接數

2

oracle 禁用索引

select count(*) from v$session;

3

oracle 禁用索引

2、查詢oracle的并發連接配接數

4

oracle 禁用索引

select count(*) from v$session where status='ACTIVE';

5

oracle 禁用索引

3、檢視不同使用者的連接配接數

6

oracle 禁用索引

select username,count(username) from v$session where username is not null group by username;

7

oracle 禁用索引

4、檢視所有使用者:

8

oracle 禁用索引

select * from all_users;

9

oracle 禁用索引

5、檢視使用者或角色系統權限(直接指派給使用者或角色的系統權限):

10

oracle 禁用索引

select * from dba_sys_privs;

11

oracle 禁用索引

select * from user_sys_privs;

12

oracle 禁用索引

6、檢視角色(隻能檢視登陸使用者擁有的角色)所包含的權限

13

oracle 禁用索引

select * from role_sys_privs;

14

oracle 禁用索引

7、檢視使用者對象權限:

15

oracle 禁用索引

select * from dba_tab_privs;

16

oracle 禁用索引

select * from all_tab_privs;

17

oracle 禁用索引

select * from user_tab_privs;

18

oracle 禁用索引

8、檢視所有角色:

19

oracle 禁用索引

select * from dba_roles;

20

oracle 禁用索引

9、檢視使用者或角色所擁有的角色:

21

oracle 禁用索引

select * from dba_role_privs;

22

oracle 禁用索引

select * from user_role_privs;

23

oracle 禁用索引

10、檢視哪些使用者有sysdba或sysoper系統權限(查詢時需要相應權限)

24

oracle 禁用索引

select * from V$PWFILE_USERS;

select count(*) from v$process --目前的連接配接數

select value from v$parameter where name = 'processes' --資料庫允許的最大連接配接數

修改最大連接配接數:

alter system set processes = 300 scope = spfile;

重新開機資料庫:

shutdown immediate;

startup;

--檢視目前有哪些使用者正在使用資料

SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine

from v$session a, v$sqlarea b

where a.sql_address =b.address order by cpu_time/executions desc;

select count(*) from v$session #連接配接數

select count(*) from v$session where status='ACTIVE' #并發連接配接數

show parameter processes #最大連接配接

alter system set processes = value scope = spfile;重新開機資料庫 #修改連接配接

SQL> Select count(*) from v$session where status='ACTIVE' ;

COUNT(*)

----------

SQL> Select count(*) from v$session;

187

SQL> show parameter processes;

NAME TYPE VALUE

------------------------------------ ----------- ----------

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processes integer 2

processes integer 450

SQL>

并發指active,I SEE

SQL> select count(*) from v$session #連接配接數

SQL> Select count(*) from v$session where status='ACTIVE' #并發連接配接數

SQL> show parameter processes #最大連接配接

SQL> alter system set processes = value scope = spfile;重新開機資料庫 #修改連接配接

unix 1個使用者session 對應一個作業系統 process

而 windows展現線上程

DBA要定時對資料庫的連接配接情況進行檢查,看與資料庫建立的會話數目是不是正常,如果建立了過多的連接配接,會消耗資料庫的資源。同時,對一些“挂死”的連接配接,可能會需要DBA手工進行清理。

以下的SQL語句列出目前資料庫建立的會話情況:

select sid,serial#,username,program,machine,status

from v$session;

輸出結果為:

SID SERIAL# USERNAME PROGRAM MACHINE STATUS

---- ------- ---------- ----------- --------------- --------

1 1 ORACLE.EXE WORK3 ACTIVE

2 1 ORACLE.EXE WORK3 ACTIVE

3 1 ORACLE.EXE WORK3 ACTIVE

4 1 ORACLE.EXE WORK3 ACTIVE

5 3 ORACLE.EXE WORK3 ACTIVE

6 1 ORACLE.EXE WORK3 ACTIVE

7 1 ORACLE.EXE WORK3 ACTIVE

8 27 SYS SQLPLUS.EXE WORKGROUP\\WORK3 ACTIVE

11 5 DBSNMP dbsnmp.exe WORKGROUP\\WORK3 INACTIVE

其中,

SID 會話(session)的ID号;

SERIAL# 會話的序列号,和SID一起用來唯一辨別一個會話;

USERNAME 建立該會話的使用者名;

PROGRAM 這個會話是用什麼工具連接配接到資料庫的;

STATUS 目前這個會話的狀态,ACTIVE表示會話正在執行某些任務,INACTIVE表示目前會話沒有執行任何操作;

如果DBA要手工斷開某個會話,則執行:

alter system kill session \'SID,SERIAL#\'

sql語句

SQL語句如下:

SELECT username, machine, program, status, COUNT (machine) AS

連接配接數量

FROM v$session

GROUP BY username, machine, program, status

ORDER BY machine;

顯示結果(每個人的機器上會不同)

SCHNEIDER|WORKGROUD\WANGZHENG|TOAD.exe|ACTIVE|1

SCHNEIDER|WORKGROUP\597728AA514F49D|sqlplusw.exe|INACTIVE|1

|WWW-Q6ZMR2OIU9V|ORACLE.EXE|ACTIVE|8

PUBLIC|||INACTIVE|0

按主機名查詢

SELECT COUNT(*) FROM V$SESSION WHERE MACHINE = 'DXMH';      'DXMH'為主機名

資料恢複語句

create table informationlaw_bak 

as 

select * from informationlaw as of TIMESTAMP to_timestamp('20121126 103435','yyyymmdd hh24miss');

//按機器名分組查

select username,machine,count(username) from v$session where username is not null group by username,machine;