2026-03-12 20:23:15

This commit is contained in:
root
2026-03-12 21:23:47 +01:00
parent eab4b36eca
commit 93039b8489
3332 changed files with 699614 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
-- descxx.sql requires the display_raw function which is included in the comment section below.
-- the display_raw function is taken from Greg Rahn's blog as I'm too lazy to write one myself
-- http://structureddata.org/2007/10/16/how-to-display-high_valuelow_value-columns-from-user_tab_col_statistics/
--
PROMPT Install DISPLAY_RAW helper function into the current schema?
PAUSE Press ENTER to install, CTRL+C to cancel...
create or replace function display_raw (rawval raw, type varchar2)
return varchar2
is
cn number;
cv varchar2(128);
cd date;
cnv nvarchar2(128);
cr rowid;
cc char(128);
begin
if (type = 'NUMBER') then
dbms_stats.convert_raw_value(rawval, cn);
return to_char(cn);
elsif (type = 'VARCHAR2') then
dbms_stats.convert_raw_value(rawval, cv);
return to_char(cv);
elsif (type = 'DATE') then
dbms_stats.convert_raw_value(rawval, cd);
return to_char(cd);
elsif (type = 'NVARCHAR2') then
dbms_stats.convert_raw_value(rawval, cnv);
return to_char(cnv);
elsif (type = 'ROWID') then
dbms_stats.convert_raw_value(rawval, cr);
return to_char(cnv);
elsif (type = 'CHAR') then
dbms_stats.convert_raw_value(rawval, cc);
return to_char(cc);
else
return 'UNKNOWN DATATYPE';
end if;
end;
/
grant execute on display_raw to public;
create public synonym display_raw for display_raw;

View File

@@ -0,0 +1,37 @@
-- Copyright 2018 Tanel Poder. All rights reserved. More info at http://tanelpoder.com
-- Licensed under the Apache License, Version 2.0. See LICENSE.txt for terms & conditions.
PROMPT display a matrix of optimizer parameters which change when changing optimizer_features_enabled...
CREATE TABLE opt_param_matrix(
opt_features_enabled VARCHAR2(20) NOT NULL
, parameter VARCHAR2(75) NOT NULL
, value VARCHAR2(1000)
)
/
CREATE TABLE opt_fix_matrix (
opt_features_enabled VARCHAR2(20) NOT NULL
, bugno NUMBER
, value NUMBER
, sql_feature VARCHAR2(100)
, description VARCHAR2(100)
, optimizer_feature_enable VARCHAR2(25)
, event NUMBER
, is_default NUMBER
)
/
BEGIN
FOR i IN (select value from v$parameter_valid_values where name = 'optimizer_features_enable' order by ordinal) LOOP
EXECUTE IMMEDIATE 'alter session set optimizer_features_enable='''||i.value||'''';
EXECUTE IMMEDIATE 'insert into opt_param_matrix select :opt_features_enable, n.ksppinm, c.ksppstvl from sys.x$ksppi n, sys.x$ksppcv c where n.indx=c.indx' using i.value;
EXECUTE IMMEDIATE 'insert into opt_fix_matrix select :opt_features_enable, bugno, value, sql_feature, description, optimizer_feature_enable, event, is_default FROM v$session_fix_control WHERE session_id=USERENV(''sid'')' using i.value;
END LOOP;
END;
/
COMMIT;
PROMPT To test, run: @cofep.sql 10.2.0.1 10.2.0.4

View File

@@ -0,0 +1,25 @@
0 - SELECT STATEMENT;1 - SORT ORDER BY 1
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY 45
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER 20
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS 19
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS 66
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN 635
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;7 - TABLE ACCESS FULL [TPCDS.DATE_DIM] 3
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN 935
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;9 - TABLE ACCESS FULL [TPCDS.HOUSEHOLD_DEMOGRAPHICS] 4
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN 146490
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN 11104
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;12 - TABLE ACCESS FULL [TPCDS.WAREHOUSE] 5
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;13 - HASH JOIN 20788
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;13 - HASH JOIN;14 - HASH JOIN 3
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;13 - HASH JOIN;14 - HASH JOIN;15 - TABLE ACCESS FULL [TPCDS.DATE_DIM] 3
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;13 - HASH JOIN;14 - HASH JOIN;16 - TABLE ACCESS FULL [TPCDS.DATE_DIM] 3
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;13 - HASH JOIN;17 - PARTITION RANGE ALL 113
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;11 - HASH JOIN;13 - HASH JOIN;17 - PARTITION RANGE ALL;18 - TABLE ACCESS FULL [TPCDS.INVENTORY] 5683
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;19 - PARTITION RANGE ALL 4635
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;6 - HASH JOIN;8 - HASH JOIN;10 - HASH JOIN;19 - PARTITION RANGE ALL;20 - TABLE ACCESS FULL [TPCDS.CATALOG_SALES] 13397
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;21 - TABLE ACCESS BY INDEX ROWID [TPCDS.CUSTOMER_DEMOGRAPHICS] 2552
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;5 - NESTED LOOPS;21 - TABLE ACCESS BY INDEX ROWID [TPCDS.CUSTOMER_DEMOGRAPHICS];22 - INDEX UNIQUE SCAN [TPCDS.CD_DEMO_PK_IDX] 475
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;23 - TABLE ACCESS BY INDEX ROWID [TPCDS.ITEM] 50
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;4 - NESTED LOOPS;23 - TABLE ACCESS BY INDEX ROWID [TPCDS.ITEM];24 - INDEX UNIQUE SCAN [TPCDS.ITEM_PK_IDX] 167
0 - SELECT STATEMENT;1 - SORT ORDER BY;2 - HASH GROUP BY;3 - NESTED LOOPS OUTER;25 - INDEX UNIQUE SCAN [TPCDS.PROMOTION_PK_IDX] 32