`

SQL Tuning : Setup Sample Schema

 
阅读更多

STEP 1 : Setup user
CREATE USER "TUNING" PROFILE "DEFAULT" IDENTIFIED BY "TUNING" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT CREATE SESSION TO "TUNING";
GRANT CREATE VIEW TO "TUNING";
GRANT SELECT ANY DICTIONARY TO "TUNING";
GRANT SELECT ANY TABLE TO "TUNING";
GRANT UNLIMITED TABLESPACE TO "TUNING";
GRANT "PLUSTRACE" TO "TUNING";
GRANT "RESOURCE" TO "TUNING";
 
STEP 2 : Create sample schema
connect tuning/TUNING
create table T_CURRENCY_CR (CR_PK varchar2(3 CHAR),CR_COMMENT varchar2(30 CHAR));
insert into T_CURRENCY_CR values ('EUR','Euro');
insert into T_CURRENCY_CR values ('USD','American Dollar');
insert into T_CURRENCY_CR values ('GBP','Britisch Pound');
insert into T_CURRENCY_CR values ('YEN','Japanese Yen');
commit;
alter table T_CURRENCY_CR add constraint CR_PK primary key (CR_PK);
create table T_ORDER_OR ( OR_PK number, SU_FK number, OR_ORDERDATE DATE, OR_DELIVERYDATE date, OR_PAYMENTMODE number, OR_TOTALAMOUNT number, OR_SHORTCOMMENT varchar2(100), OR_LONGCOMMENT clob);
alter table T_ORDER_OR add constraint OR_PK primary key (OR_PK);
alter table T_ORDER_OR add CR_FK varchar2(3 CHAR);
alter table T_ORDER_OR modify cr_fk not null;
alter table T_ORDER_OR add constraint CR_FK foreign key (CR_FK) references T_CURRENCY_CR (CR_PK);
alter table T_ORDER_OR modify SU_FK not null;
alter table T_ORDER_OR modify OR_ORDERDATE not null;
alter table T_ORDER_OR modify OR_DELIVERYDATE not null;
alter table T_ORDER_OR modify OR_TOTALAMOUNT not null;
alter table T_ORDER_OR modify OR_PAYMENTMODE not null;
create index OR_IDX1 on T_ORDER_OR (SU_FK);
create sequence OR_SEQ;
declare
cur varchar2(3 CHAR);
begin
for i in 1 .. 1000000 loop
select CR_PK into cur from (select cr_pk from t_currency_cr order by dbms_random.value) where rownum = 1;
insert into T_ORDER_OR values ( OR_SEQ.nextval, trunc(dbms_random.value(1,100)),
sysdate,sysdate+30,
trunc(dbms_random.value(1,8)),
round(dbms_random.value(50,100000),2),
dbms_random.string('U',100),empty_clob,cur);
end loop;
end;
/
commit;
create table T_SUPPLIER_SU (su_pk number,su_name varchar2(100 CHAR),su_comment varchar2(100 CHAR));
alter table T_SUPPLIER_SU add constraint su_pk primary key (su_pk);
begin
for i in 1 .. 99 loop
insert into t_supplier_su values (i,dbms_random.string('U',100),dbms_random.string('U',100));
end loop;
end;
/
commit;
alter table T_ORDER_OR add constraint SU_FK foreign key (SU_FK) references T_SUPPLIER_SU (SU_PK);
insert into T_SUPPLIER_SU values (100,'We love SQL tuning','We love SQL tuning');
insert into T_CURRENCY_CR values ('CAD','Canadian Dollar');
insert into T_CURRENCY_CR values ('BRL','Brazilian Real');
commit;
create or replace view V_ORDERSTAT_OS as select su_fk,cr_fk,avg(or_totalamount) OS_AVGAMOUNT,
min(or_totalamount) OS_MINAMOUNT,
max(or_totalamount) OS_MAXAMOUNT
from t_order_or group by su_fk,cr_fk;
 
create table T_DELIVERY_DL ( DL_PK number, OR_FK number, DL_DELIVERYESTDATE date, DL_DELIVERYREALDATE date,DL_SHORTCOMMENT varchar2(100), DL_LONGCOMMENT clob);
alter table T_DELIVERY_DL add constraint DL_PK primary key (DL_PK);
alter table T_DELIVERY_DL modify OR_FK not null;
alter table T_DELIVERY_DL add constraint OR_FK foreign key (OR_FK) references T_ORDER_OR (OR_PK);
alter table T_DELIVERY_DL modify DL_DELIVERYESTDATE not null;
alter table T_DELIVERY_DL modify DL_DELIVERYREALDATE not null;
 
 
create index DL_IDX1 on T_DELIVERY_DL (OR_FK);
create sequence DL_SEQ;
 
declare
cursor lc1 is select or_pk,or_orderdate from t_order_or;
begin
for i in lc1 loop
if mod(i.or_pk,1000) != 0 then
insert into T_DELIVERY_DL values ( DL_SEQ.nextval,
i.or_pk,
i.or_orderdate + trunc(dbms_random.value(15,35)),
i.or_orderdate + trunc(dbms_random.value(15,40)),
dbms_random.string('U',100),
empty_clob);
end if;

end loop;
end;
/
 
-- orders for which there is a second delivery
declare
cursor lc1 is select or_pk,or_orderdate from t_order_or;
begin
for i in lc1 loop
if mod(i.or_pk,700) = 0 then
insert into T_DELIVERY_DL values ( DL_SEQ.nextval,
i.or_pk,
i.or_orderdate + trunc(dbms_random.value(15,35)),
i.or_orderdate + trunc(dbms_random.value(12,43)),
dbms_random.string('U',100),
empty_clob);
end if;
end loop;
end;
/
 
-- orders for which there is a thirth delivery
declare
cursor lc1 is select or_pk,or_orderdate from t_order_or;
begin
for i in lc1 loop
if mod(i.or_pk,7000) = 0 then
insert into T_DELIVERY_DL values ( DL_SEQ.nextval,
i.or_pk,
i.or_orderdate + trunc(dbms_random.value(15,35)),
i.or_orderdate + trunc(dbms_random.value(12,43)),
dbms_random.string('U',100),
empty_clob);
end if;
end loop;
end;
/

begin
dbms_stats.gather_schema_stats(user, cascade=>true, estimate_percent => 100, method_opt=>'FOR ALL COLUMNS SIZE AUTO',no_invalidate => false );
end;
/

参考至:http://www.online-database.eu/index.php/sql-tuning/175-sql-tuning-setup-sample-schema

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    SQL Tuning Advisor使用总结

    本文将详细介绍如何利用SQL Tuning Advisor来提高SQL语句的执行效率,包括从Automatic Workload Repository (AWR)、游标缓存以及SQL调优集(SQL Tuning Set, STS)中获取SQL语句并建立、执行及获取调优结果的方法。...

    SQL Tuning sqlServer 数据库

    以上内容只是《SQL Tuning in sqlServer 数据库》教程的部分要点,通过深入学习,你可以掌握一系列SQL Server性能优化的技巧和最佳实践,从而更好地管理和优化你的数据库系统。CHM格式的文档通常包含丰富的超链接和...

    SQL Tuning使用指南

    ### SQL Tuning 使用指南知识点详解 #### 一、SQL Tuning 概述 **SQL Tuning** 是一种专为 **Oracle 数据库** 设计的强大工具,用于分析、测试和优化 SQL 语句,旨在提高应用系统的整体性能。该工具覆盖了数据库...

    Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition

    Oracle SQL Tuning with Oracle SQLTXPLAIN: Oracle Database 12c Edition by Stelios Charalambides English | 8 May 2017 | ISBN: 1484224353 | 408 Pages | PDF | 24.39 MB Learn through this practical guide ...

    oracle sqltuning workshop

    在这个"Oracle SQLTuning Workshop"中,虽然资料可能源自2004年,但它依然包含了许多至今仍具价值的基础知识和实践经验。以下是一些核心知识点的详细说明: 1. **SQL基础**:SQL(结构化查询语言)是用于管理和处理...

    Oracle 12C SQL Tuning for Developers

    通过Advisor工具,如SQL Tuning Advisor,系统会分析SQL语句并提供改进建议,如创建索引、重写查询或调整绑定变量。 3. **SQL Performance Analyzer**:这是一个强大的工具,用于在实际负载下测试SQL语句的性能变化...

    oracle sql_tuning

    SQL_Tuning是Oracle官方提供的一个专题,旨在帮助管理员和开发人员优化SQL查询,从而提高数据库的效率和响应时间。以下是一些关于"Oracle SQL Tuning"的重要知识点: 1. **SQL执行计划**:SQL执行计划是Oracle解析...

    Tosska SQL Tuning Expert for Oracle 2.0.3_x64.exe

    Tosska SQL Tuning Expert (TSE™) 是一款优秀的SQL 调优工具,无需用户参与即可优化 SQL 语句。该产品将为您提供最终的 SQL 性能解决方案,只需点击鼠标即可。在整个 SQL 调优过程中,您不必进行分析、猜测或手工...

    自动SQL优化工具Tosska SQL Tuning Expert for Oracle 64位

    **自动SQL优化工具Tosska SQL Tuning Expert for Oracle 64位** 在数据库管理领域,性能优化是一项至关重要的任务,尤其是对于Oracle这样的大型企业级数据库系统。Tosska SQL Tuning Expert是一款专为Oracle数据库...

    Tosska SQL Tuning Expert for Oracle 1.5.0_x64.exe

    《Tosska SQL Tuning Expert for Oracle:解锁SQL性能优化的利器》 在数据库管理领域,SQL优化是提升系统性能的关键环节。Oracle数据库系统作为业界领先的企业级数据库解决方案,其性能优化更是至关重要。Tosska ...

    Tosska SQL Tuning Expert for Oracle

    《Tosska SQL Tuning Expert for Oracle:解锁Oracle数据库性能优化的艺术》 Oracle数据库系统作为全球广泛使用的数据库管理系统,其性能优化是系统管理员和DBA(数据库管理员)至关重要的任务。Tosska SQL Tuning ...

    SQL Tuning.chm

    SQL Tuning author Dan Tow outlines a timesaving method he's developed for finding the optimum execution plan--rapidly and systematically--regardless of the complexity of the SQL or the database ...

    Top-SQL Tuning SQL语句调整

    标题与描述中的“Top-SQL Tuning SQL语句调整”主要聚焦于提升SQL查询的效率与性能,这是数据库管理与优化的重要组成部分。SQL语句的性能直接影响到应用程序的响应时间和系统的整体性能,因此,掌握有效的SQL调优...

    人工智能自动sql优化工具--SQLTuning for SQL Server

    **SQL优化工具SQLTuning for SQL Server详解** SQL语句是数据库系统中不可或缺的一部分,它直接决定了数据库的性能。在数据库操作中,虽然相同逻辑的SQL语句有多种写法,但不同写法对性能的影响可能相差甚远。面对...

    Sybase Perfomance and Tuning:Basics

    本文将基于《Sybase Performance and Tuning:Basics》的内容,详细介绍Sybase数据库性能优化的基础知识。 #### 二、Sybase数据库简介 Sybase是由Sybase公司开发的一款关系型数据库管理系统,以其高可用性、高性能...

    Db10g SQL Tuning Vol-I

    根据提供的文件信息,我们可以推断出这是一份关于Oracle Database 10g SQL Tuning的培训资料。下面将从以下几个方面来深入解析这份文档中所包含的重要知识点。 ### 一、Oracle Database 10g SQL Tuning 的概念 ...

    人工智能自动sql优化工具–SQLTuning for SQL Server

    【SQLTuning for SQL Server】是一款由Quest公司开发的人工智能自动SQL优化工具,它集成在Quest Central软件中,提供了一种高效的方式来管理和优化SQL Server数据库的SQL查询性能。Quest Central是一个多平台的...

    automatic sql tuning in oracle 10g

    描述sql tuning的基础.............

    Oracle SQL Tuning.pdf

    本文将基于“Oracle SQL Tuning”这一主题,深入探讨Oracle SQL调优的核心概念、策略及实践方法。 一、SQL语句处理概览 SQL语句的执行效率对数据库性能有决定性影响。在Oracle环境中,SQL语句的处理流程主要包括...

    sql tuning

    ### SQL调优(SQL Tuning) #### 一、引言 本书《Oracle SQL 调优口袋参考》是由 Mark Gurry 编写的一本快速参考指南,旨在为读者提供 Oracle SQL 的调优方法与技巧。虽然它不是一本全面介绍 Oracle 调优的书籍,...

Global site tag (gtag.js) - Google Analytics