talip hakan ÖztÜrk b ank asya – oracle dba oce, 10g oca, 10g ocp
DESCRIPTION
Veritabanı Objeleri Ölçülebilirlik & Performans. Talip Hakan ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP http://taliphakanozturk.wor dpress.com. Talip Hakan ÖZTÜRK. 2000-2005 Azerbaycan Teknik Üniversitesi – Bilgisayar Müh . B ANK ASYA - Oracle DBA OCE, 10g OCA, 10g OCP - PowerPoint PPT PresentationTRANSCRIPT
Talip Hakan ÖZTÜRK
BANKASYA – ORACLE DBA
OCE, 10g OCA, 10g OCP
http://taliphakanozturk.wordpress.com
Veritabanı Objeleri
Ölçülebilirlik &
Performans
http://taliphakanozturk.wordpress.com
Talip Hakan ÖZTÜRK
2000-2005 Azerbaycan Teknik Üniversitesi – Bilgisayar Müh.
BANKASYA - Oracle DBA OCE, 10g OCA, 10g OCP Oracle Blogger
http://taliphakanozturk.wordpress.com Oracle Forum Sorumlusu ve Editörü
http://www.ceturk.com
http://taliphakanozturk.wordpress.com
Veritabanı Objeleri – Demo Views Constraints DML Triggers DDL Triggers B*Tree Indexes Bitmap Indexes Function Based Indexes Index Organized Tables External Tables Synonyms Sequence
Okuma Tutarlılığı (Read Consistency) Kilitler (Locks)
Gündem
http://taliphakanozturk.wordpress.com
Views
Tablo joinleri içerebilirler.
DML?
SimpleCREATE OR REPLACE FORCE VIEW calisanlar_vAS SELECT c.employee_id, c.first_name, c.last_name, c.hire_date FROM calisanlar c;ComplexCREATE OR REPLACE FORCE VIEW calisanlar_v(min_salary, department_name)AS SELECT min(c.salary),d.department_name FROM calisanlar c, departmanlar d WHERE c.department_id=d.department_id GROUP BY d.department_name;
http://taliphakanozturk.wordpress.com
Constraints
ALTER TABLE calisanlar ADD ( CONSTRAINT salary_check CHECK ( NVL(salary,0) >= 1000 )); insert into calisanlar (first_name,last_name,email,salary)values ('talip','ozturk','[email protected]',1001);
Tablonun ilgili alanına uygulanan kısıtlamadır.
http://taliphakanozturk.wordpress.com
DML Triggerscreate table calisanlar_log (user_id varchar2(10),log_date date,action varchar2(1000));
CREATE OR REPLACE TRIGGER calisanlar_kontrol_deleteBEFORE DELETE ON calisanlar REFERENCING NEW AS new OLD AS old FOR EACH ROWDECLAREBEGINraise_application_error(-20001,'Silme islemi yapamazsiniz! DBA ile gorusunuz!');end;
delete from calisanlar where employee_id=105;
CREATE OR REPLACE TRIGGER calisanlar_kontrol_insertAFTER INSERT ON calisanlar REFERENCING NEW AS new OLD AS old FOR EACH ROWDECLAREBEGININSERT INTO calisanlar_log (user_id,log_date,action)VALUES (USER, SYSDATE, 'calisanlar tablosuna kayıt insert edildi');end;
insert into calisanlar (first_name,last_name,email,salary)values ('talip','ozturk','[email protected]',1001);
http://taliphakanozturk.wordpress.com
DDL Triggers
CREATE OR REPLACE TRIGGER logon_trigAFTER LOGON ON SCHEMABEGININSERT INTO log_trig_table(user_id,log_date,action)VALUES (USER, SYSDATE, 'Logging on');END;/
create table log_trig_table (user_id varchar2(10),log_date date,action varchar2(10));
select * from log_trig_table;
http://taliphakanozturk.wordpress.com
B*Tree Indexes
S
D E U
DEN ENG SCOSPA
USAAUSBELCAN
Set autotrace on
SELECT * FROM CALISANLAR WHERE EMPLOYEE_ID=105;
CREATE INDEX CALISANLAR_ID_X ON CALISANLAR(EMPLOYEE_ID);
--ALTER SYSTEM FLUSH SHARED_POOL;
--ALTER SYSTEM FLUSH BUFFER_CACHE;
analyze index CALISANLAR_ID_X compute statistics;
http://taliphakanozturk.wordpress.com
Bitmap Indexescreate table bitmap_index_demo ( value varchar2(20));
insert into bitmap_index_demoselect decode(mod(rownum,2),0,'M','F') from all_objects; create bitmap index bitmap_index_demo_idx on bitmap_index_demo(value); -- birinci sessioninsert into bitmap_index_demo values ('M');
-- ikinci session insert into bitmap_index_demo values ('F'); -- birinci sessioninsert into bitmap_index_demo values ('F');
create table bitmap_index_demo1 as select * from bitmap_index_demo;
insert into bitmap_index_demo1select decode(mod(rownum,2),0,'M','F') from all_objects; create index bitmap_index_demo1_idx on bitmap_index_demo1(value); -- birinci sessioninsert into bitmap_index_demo1 values ('M');
-- ikinci session insert into bitmap_index_demo1 values ('F'); -- birinci sessioninsert into bitmap_index_demo1 values ('F');
http://taliphakanozturk.wordpress.com
Function Based Indexes
CREATE INDEX CALISANLAR_ID_2X ON CALISANLAR(SALARY);
CREATE INDEX CALISANLAR_ID_3X ON CALISANLAR(SALARY*10/100);
SELECT * FROM calisanlar WHERE SALARY*10/100>=1000;
http://taliphakanozturk.wordpress.com
Index Organized Tables
Veriler B*Tree index yapısında saklanır.
create table iot_table( id number primary key, name varchar2(5))organization index;
create table normal_table( id number primary key, name varchar2(5)); insert into iot_table values(5,'a');commit;
http://taliphakanozturk.wordpress.com
External Tablescreate or replace directory talipdir as '/oracle/ora11g'; as sysdbagrant read,write on directory talipdir to talip; as sysdba
create table dblist ( CI_name varchar2(20), ID varchar2(20), logical_name varchar2(20), dbname varchar2(20), thread number, type varchar2(20), subtype varchar2(20), environment varchar2(20) ) organization external ( default directory talipdir access parameters ( records delimited by newline fields terminated by ';' ) location ('dblist.csv') )REJECT LIMIT unlimited;
select * from dblist order by ci_name desc;
http://taliphakanozturk.wordpress.com
Synonyms
ALI . HESAP_NO
HESAP_NO
Public Synonym To
ALI.HESAP_NO
VELI
SELIM
AYSE
Select * from
hesap_no;
Private Synonyms Public Synonyms
create synonym ygm_test.calisanlar for talip.calisanlar;
create public synonym calisanlar for talip.calisanlar;
http://taliphakanozturk.wordpress.com
Sequence
CREATE SEQUENCE calisan_id INCREMENT BY 1 START WITH 1 MAXVALUE 100 MINVALUE 1 NOCYCLE CACHE 20 ORDER;
Session 1 Session 210:30 UPDATE scott.emp SET sal = sal+10
WHERE ename = 'KING';
10:32 UPDATE scott.emp SET sal = sal+20 WHERE ename = 'KING';
10:34 commit ;10:35 commit;
http://taliphakanozturk.wordpress.com
Read Consistency
Session 1 Session 210:30 UPDATE scott.emp SET sal = 1000
WHERE ename = 'KING';
10:32 SELECT sal FROM scott.emp WHERE ename = 'KING';
10:35 commit ;
http://taliphakanozturk.wordpress.com
Read Consistency
Session 1 Session 210:30 UPDATE scott.emp SET sal = 1000
WHERE ename = 'KING';
10:32 UPDATE scott.emp SET sal = 1500 WHERE ename = 'KING';
10:34 commit;10:35 commit ;
http://taliphakanozturk.wordpress.com
Read Consistency
Session 1:UPDATE scott.emp SET ename = 'KING1'
WHERE ename = 'KING';
(don NOT commit)
Session 2: SELECT ename FROM scott.emp WHERE ename='KING' FOR UPDATE OF ename wait 10;
after 10 seconds : * ERROR at line 1: ORA-30006: resource busy; acquire with
WAIT timeout expired
http://taliphakanozturk.wordpress.com
DML Locks
http://taliphakanozturk.wordpress.comhttp://oracleforum.infohttp://troug.orghttp://www.ceturk.comhttp://tahiti.oracle.comhttp://forums.oracle.comhttp:/otn.oracle.comhttp://asktom.oracle.com
http://taliphakanozturk.wordpress.com
TEŞEKKÜRLERTalip Hakan ÖZTÜRK
Bilgisayar Mühendisi
Oracle Certified Professional 10g
Oracle Certified Associate 10g
Oracle Certified Expert
http://taliphakanozturk.wordpress.com