Top Banner
Talip Hakan ÖZTÜRK BANKASYA – ORACLE DBA OCE, 10g OCA, 10g OCP http://taliphakanozturk.wor dpress.com Veritabanı Objeleri Ölçülebilirlik & Performans
21

Talip Hakan ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

Feb 07, 2016

Download

Documents

Việt

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 Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

Talip Hakan ÖZTÜRKBANKASYA – ORACLE DBAOCE, 10g OCA, 10g OCPhttp://taliphakanozturk.wordpress.com

Veritabanı ObjeleriÖlçülebilirlik &

Performans

Page 2: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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

Page 3: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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

Page 4: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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;

Page 5: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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.

Page 6: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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);

Page 7: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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;

Page 8: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

http://taliphakanozturk.wordpress.com

B*Tree IndexesS

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;

Page 9: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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');

Page 10: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

http://taliphakanozturk.wordpress.com

Function Based IndexesCREATE 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;

Page 11: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

http://taliphakanozturk.wordpress.com

Index Organized TablesVeriler 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;

Page 12: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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;

Page 13: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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;

Page 14: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

http://taliphakanozturk.wordpress.com

Sequence

CREATE SEQUENCE calisan_id INCREMENT BY 1 START WITH 1 MAXVALUE 100 MINVALUE 1 NOCYCLE CACHE 20 ORDER;

Page 15: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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

Page 16: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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

Page 17: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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

Page 18: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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

Page 19: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

http://taliphakanozturk.wordpress.com

Deadlocks

Page 20: Talip Hakan  ÖZTÜRK B ANK ASYA – ORACLE DBA OCE, 10g OCA, 10g OCP

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