Documente Academic
Documente Profesional
Documente Cultură
Ltd
Performance Tuning
Partition Tables
=============
<TIP>
inserting multiple values with the help of for loop in sql using simple PL/SQL.
create a sql script:
$] vi insert.sql
then write the following code for inserting in single column table
begin
for I in 1..500000 loop
insert into table_name values(I)
end loop
end
/
save this with .sql extension and run on sql prompt as
sql>@insert.sql
OR
fire this query on sql
List Partition
Sql>create table sales_by_region(deptno number(10),deptname varchar2(20),state
varchar2(2))
Partition by list(state)
(
Partition north values(‘DL’,’JP’) tablespace tbs1,
Partition south values(‘HY’,’PU’) tablespace tbs2
);
Imp views
dba_tab_partitions
user_tab_partitions
dba_indexes
index_stats
user_indexes
Materialized View
==============
The QUERY REWRITE clause tells the optimizer if the materialized view should be
consider for query rewrite operations. An example of the query rewrite
functionality is shown below.
The ON PREBUILT TABLE clause tells the database to use an existing table
segment, which must have the same name as the materialized view and
support the same column structure as the query
Check Privileges
Check the user who will own the materialized views has the correct privileges.
At minimum they will require the CREATE MATERIALIZED VIEW privilege. If they are
creating materialized views using database links, you may want to grant
them CREATE DATABASE LINK privilege also.
CONNECT / As sysdba
Basic Syntax
The full syntax description for the CREATE MATERIALIZED VIEW command is
available in the documentation. Here we will only concern ourselves with the
basics.
AS
SELECT ...;
BEGIN
Futurematics.Pvt.Ltd
Performance Tuning
DBMS_STATS.gather_table_stats(
ownname => 'SCOTT',
tabname => 'EMP_MV');
END;
/
To take advantage of the of the fast refresh, connect to the master instance
and create the materialized view log.
CONNECT scott/tiger
For on demand refreshes, you can choose to manually refresh the materialized
view or refresh it as part of a refresh group.
Futurematics.Pvt.Ltd
Performance Tuning
EXEC DBMS_MVIEW.refresh('EMP_MV');
The following code creates a refresh group defined to refresh every minute
and assigns a materialized view to it.
BEGIN
DBMS_REFRESH.make(
name => 'SCOTT.MINUTE_REFRESH',
list => '',
next_date => SYSDATE,
interval => '/*1:Mins*/ SYSDATE + 1/(60*24)',
implicit_destroy => FALSE,
lax => FALSE,
job => 0,
rollback_seg => NULL,
push_deferred_rpc => TRUE,
refresh_after_errors => TRUE,
purge_option => NULL,
parallelism => NULL,
heap_size => NULL);
END;
/
BEGIN
DBMS_REFRESH.add(
name => 'SCOTT.MINUTE_REFRESH',
list => 'SCOTT.EMP_MV',
lax => TRUE);
END;
/
Cleaning Up
Futurematics.Pvt.Ltd
Performance Tuning
CONNECT scott/tiger
DROP MATERIALIZED VIEW emp_mv;
BEGIN
DBMS_REFRESH.destroy(name => 'SCOTT.MINUTE_REFRESH');
END;
/
CONNECT scott/tiger
DROP MATERIALIZED VIEW LOG ON scott.emp;