forked from bobbydurrett/OracleDatabaseTuningSQL
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakebefore.sql
More file actions
142 lines (115 loc) · 4.09 KB
/
makebefore.sql
File metadata and controls
142 lines (115 loc) · 4.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
set echo off
set termout off
set heading off
set feedback off
set newpage none
set linesize 1000
set trimspool on
drop table lines;
create table lines(lineno number,line varchar2(1000));
drop sequence linesseq;
create sequence linesseq;
insert into lines values (linesseq.nextval,'connect &1/&2');
set define off
insert into lines values (linesseq.nextval,'set linesize 1000');
insert into lines values (linesseq.nextval,'set pagesize 1000');
insert into lines values (linesseq.nextval,'set head off;');
insert into lines values (linesseq.nextval,'set verify off;');
insert into lines values (linesseq.nextval,'set termout off;');
insert into lines values (linesseq.nextval,' ');
insert into lines values (linesseq.nextval,'column u new_value us noprint;');
insert into lines values (linesseq.nextval,'column n new_value ns noprint;');
insert into lines values (linesseq.nextval,' ');
insert into lines values (linesseq.nextval,'select name n from v$database;');
insert into lines values (linesseq.nextval,'select user u from dual;');
insert into lines values (linesseq.nextval,'set sqlprompt &ns:&us>');
insert into lines values (linesseq.nextval,' ');
insert into lines values (linesseq.nextval,'set head on');
insert into lines values (linesseq.nextval,'set echo on');
insert into lines values (linesseq.nextval,'set termout on');
insert into lines values (linesseq.nextval,'set trimspool on');
insert into lines values (linesseq.nextval,' ');
insert into lines values (linesseq.nextval,'spool &ns.before.log');
commit;
-- disable triggers before import
insert into lines
select linesseq.nextval,'alter trigger '||t.owner||'.'||t.trigger_name||' disable;'
from dba_triggers t,tablelist l
where
t.table_owner=l.table_owner and
t.table_name=l.table_name;
commit;
-- disable all ref constraints that point to the tables
insert into lines
select linesseq.nextval,line
from
(select distinct
'alter table '||orig.owner||'.'||orig.table_name||
' modify constraint '||orig.constraint_name||' disable;' line
from dba_constraints orig, dba_constraints refer, tablelist l
where
orig.constraint_type='R' and
refer.owner=l.table_owner and
refer.table_name=l.table_name and
orig.r_owner=refer.owner and
orig.R_CONSTRAINT_NAME=refer.CONSTRAINT_NAME);
commit;
-- disable referential constraints on the table(s)
insert into lines
select linesseq.nextval,line
from
(select distinct 'alter table '||c.owner||'.'||c.table_name||
' modify constraint '||constraint_name||' disable;' line
from dba_constraints c,tablelist l
where
constraint_type ='R' and
c.owner=l.table_owner and
c.table_name=l.table_name);
commit;
insert into lines
select linesseq.nextval,line
from
(select 'truncate table '||table_owner||'.'||table_name||';' line
from tablelist
where partition_name is null
order by table_owner,table_name);
insert into lines
select linesseq.nextval,line
from
(select 'alter table '||table_owner||'.'||table_name||' truncate partition '||partition_name||';' line
from tablelist
where partition_name is not null
order by table_owner,table_name);
commit;
-- nonunique indexes only - when doing particular partitions add partition names to where conditions
-- in the subqueries against dba_ind_partitions
-- set non-partitioned indexes unusable. set all partitions of partitioned indexes unusable
insert into lines
select linesseq.nextval,line
from
(select 'alter index '||i.owner||'.'||i.index_name||' unusable;' line
from dba_indexes i,tablelist l
where
i.table_owner=l.table_owner and
i.table_name=l.table_name and
partitioned='NO' and
uniqueness='NONUNIQUE'
union
select 'alter index '||i.owner||'.'||i.index_name||' modify partition '||ip.partition_name||' unusable;' line
from dba_indexes i, dba_ind_partitions ip,tablelist l
where
i.table_owner=l.table_owner and
i.table_name=l.table_name and
(ip.partition_name=l.partition_name or l.partition_name is null) and
i.partitioned='YES' and
i.owner=ip.index_owner and
i.index_name=ip.index_name and
uniqueness='NONUNIQUE');
commit;
insert into lines values (linesseq.nextval,'spool off');
insert into lines values (linesseq.nextval,'exit');
commit;
spool before.sql
select line from lines order by lineno;
spool off
exit