Veritaban gelitiricileri iin Oracle 11 g yeni zellikleri
Veritabanı geliştiricileri için Oracle 11 g yeni özellikleri TROUG Oracle Day etkinliği Lütfi Kırdar Kongre Merkezi 04/11/2010 H. Tonguç Yılmaz tonguc. yilmaz@gmail. com http: //friendfeed. com/Tonguc. Y
http: //tonguc. wordpress. com/about/ § H. Tonguç Yılmaz: Oracle veritabanı uzmanı - iyi bir Fenerbahçe taraftarı - Metal müzik sever - Bol bol DVD izler vs. § Fethiye Lisesi, İTÜ Bilgisayar Müh. , Bilgi MBA § C Developer, Informix DBA-Hp Unix Admin, Oracle DBA, Oracle ETL Developer, DW Development Team Leader § 1996 Tekstilbank, 2000 Turkcell, 2008 Turkcell Teknoloji § 10+ sene Oracle veritabanı tecrübesi, Oracle 8 i, 9 i, 10 g OCP & 2007 Oracle ACE, 2005 Oracle blogger § 2002 Turkcell Akademi Oracle veritabanı iç eğitmeni & 2002 TTech Paf koçu § 1999 Oracle. Turk moderatör, 2010 TROUG kurucu üye
Her yeni sürüm ile birlikte ilk göz atılacak ilk yer
Bu oturum veritabanı geliştiricileri içindir • SQL iyileştirmeleri: • Native Support for Pivot and Unpivot, Recursive WITH clause, Nth value for inter-row calculation, New aggregate function LISTAGG, Hash based DISTINCT aggregation, NULL-aware anti join, GROUP BY aggregation improvements • PL/SQL iyileştirmeleri: • Transparent performance: Fine Grained Dependency Tracking, Parameterized Performance: Real native compilation, Usability of the language: Sequence in a PL/SQL expression, PL/Scope, PL/SQL Hierarchical Profiler, When others then null warning, Named and • Real Time SQL Monitor Mixed Notation in SQL • Flashback Data Archive, Total Data Recall • Şema yönetimi iyileştirmeleri • Cube Organized Materialized Views • Virtual Columns, Faster Add Not Null Column with Default • Real Application Testing: Database Replay & Value, Read Only table, Invisible indexes, DDL can now SQL Performance Analyzer (SPA) wait, Segment creation on demand • Partitioning, Advanced Compression, • Sorgu çalıştırma iyileştirmeleri Parallel Query, Resource Manager • Guaranteed plan stability with controlled plan evolution: • Unstructured Data & Application Development : SQL Plan Management, Collect more statistics – better, Securefiles, Multimedia, Spatial, XML DB faster, Multi-column statistics, Faster calculation of NDV, • Java & PHP Control and manage new statistics propagation: Separate statistic discovery and publication, Enhanced bind • Exadata V 2: Hybrid columnar compression, peeking: Properly address data skew, Multi-Predicate Storage indexes, Enhanced offloading capabilities, Pruning data mining model scoring • Online application upgrade with edition based redefinition
Oracle kısa tarihçe • 1978 Oracle V 1; pazardaki ilk *satış* amaçlı ilişkisel SQL veritabanı yönetim sistemi • . . . • • • 7. 3 1996 8. 0 1997 Oracle 8 8. 1. 5 1999 Oracle 8 i Release 1 8. 1. 6 1999 Oracle 8 i Release 2 8. 1. 7 2000 Oracle 8 i Release 3 9. 1 2001 Oracle 9 i Release 1 9. 2 2002 Oracle 9 i Release 2 10. 1 2004 Oracle 10 g Release 1 10. 2 2005 Oracle 10 g Release 2 ( XE ! ) 11. 1 2007 Oracle 11 g Release 1 11. 2 2009 Oracle 11 g Release 2
Artık Apex & OWB standart kurulumun parçası • Apex ve OWB standart ETL özellikleri veritabanı lisansının içindedir, ek maliyet yaratmazlar
Güle güle SQL*Plus, hoş geldin SQL Developer • SQL*Plus komut satırı hala bizimle, panik yok • SQL*Plus 11 g ile BLOB ile BFILE kolonları da artık gösterebiliyor.
Asynchronous Change Data Capture LOB'leri artık destekliyor • Asynchronous Change Data Capture henüz desteklenmeyen veri tipleri: • BFILE • LONG • ROWID • UROWID • object types (XMLType gibi) • virtual columns • Asynchronous Change Data Capture desteklenmeyen tablo yapıları: • temporary tables • object tables • Desteklenmeyen veri tipleri içeren(LOB kolonlar dahil) veya overflow segments sahibi olan Index-organized tables
Şifrelerde küçük-büyük harf kullanımı CONN / AS SYSDBA CREATE USER test 2 IDENTIFIED BY Test 2; GRANT CONNECT TO test 2; SQL> CONN test 2/Test 2 Connected. SQL> CONN test 2/test 2 ERROR: ORA-01017: invalid username/password; logon denied SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON NAME TYPE VALUE --------------------sec_case_sensitive_logon boolean TRUE CONN / AS SYSDBA ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; SQL> CONN test 2/Test 2 Connected. SQL> CONN test 2/test 2 Connected. • 11 g ile artık Audit özeliği kurulum ile birlikte açık ve AUDIT_TRAIL değeri DB ön tanımlı.
SQL*Plus ERRORLOGGING özelliği • SQL, PL/SQL veya SQL*Plus hataları artık SPERRORLOG tablosunda kaydediliyor. create table tong_sperrorlog(username varchar(256), timestamp TIMESTAMP, script varchar(1024), identifier varchar(256), message CLOB, statement CLOB); set errorlogging on table tong_sperrorlog create table tong ( c 1 number ) ; set errorlogging off select timestamp, statement, message from tong_sperrorlog; TIMESTAMP STATEMENT MESSAGE 22 -JUN-08 07. 00. 27. 000000 PM create table tong ( c 1 number ) ORA-01031: insufficient privileges • 11 g istemci 9 i veya 10 g sunuculara bağlanarak da kullanılabiliyor, detaylar $ORACLE_HOME/sqlplus/doc/elgsetup. txt dosyasında.
ALTER TABLE. . ADD COLUMN iyileştirmeleri • 11 g öncesinde DEFAULT değerli yeni bir kolon ve NOT NULL constraint eklemek tablo üzerinde exclusive kilit alıyordu ve varsayılan değer tablodaki tüm satırlara güncellenmesi gerektiriyordu. • 11 g sonrasında varsayılan değer data dictionary kaydediliyor ve büyük tablolar için tüm kayıtların güncellenmesi işleminden kurtulunuyor. Ek olarak alttaki ADD COLUMN operasyonları artık DML cümleleri ile birlikte problemsiz çalışabiliyor: • Varsayılan değerli NOT NULL kolon ekleme • Varsayılan değeri olmayan bir nullable kolon ekleme • Virtual kolon ekleme -- 10. 2 create table tst_source nologging as select rownum id, text from dba_source; set timing on ALTER TABLE tst_source ADD (name VARCHAR 2(16) DEFAULT 'N' NOT NULL); Elapsed: 00: 30. 43 -- 11. 1 create table tst_source nologging as select rownum id, text from dba_source; set timing on ALTER TABLE tst_source ADD (name VARCHAR 2(16) DEFAULT 'N' NOT NULL); Elapsed: 00: 00. 10
Sanal Kolonlar • Var olan kolon değerlerinden hesaplanan yeni kolonlar, DML göremezler, indeksler üzerindeki function based index olarak yönetilir, Index-organized, external, object, cluster, veya temporary tablolar için desteklenmiyor henüz. CREATE TABLE employees ( id NUMBER, first_name VARCHAR 2(10), last_name VARCHAR 2(10), salary NUMBER(9, 2), comm 1 NUMBER(3), comm 2 NUMBER(3), salary 1 AS (ROUND(salary*(1+comm 1/100), 2)), salary 2 NUMBER GENERATED ALWAYS AS (ROUND(salary*(1+comm 2/100), 2)) VIRTUAL, CONSTRAINT employees_pk PRIMARY KEY (id) ); INSERT INTO employees (id, first_name, last_name, salary, comm 1, comm 2) VALUES (1, 'JOHN', 'DOE', 100, 5, 10); INSERT INTO employees (id, first_name, last_name, salary, comm 1, comm 2) VALUES (2, 'JAYNE', 'DOE', 200, 10, 20); COMMIT; SELECT * FROM employees; ID FIRST_NAME LAST_NAME SALARY COMM 1 COMM 2 ---------- ---------- -----1 JOHN DOE 100 5 10 105 110 2 JAYNE DOE 200 10 20 240 SELECT column_name, data_default FROM user_tab_columns WHERE table_name = 'EMPLOYEES'; COLUMN_NAME DATA_DEFAULT ----------------------------------------. . . SALARY 1 ROUND("SALARY"*(1+"COMM 1"/100), 2) SALARY 2 ROUND("SALARY"*(1+"COMM 2"/100), 2) SALARY 1 SALARY 2
DDL bekletme opsiyonu (DDL_LOCK_TIMEOUT) • DDL_LOCK_TIMEOUT parametresi bir DDL komutunun kaç saniye bekleyeceğini ilgili aktif işlemi belirliyor, ALTER SYSTEM veya ALTER SESSION ile kullanılabiliyor. Var sayılan değer 0 saniye. -- session 1 CREATE TABLE lock_tab ( id NUMBER ); INSERT INTO lock_tab VALUES (1); -- session 2 ALTER TABLE lock_tab ADD ( description VARCHAR 2(50) ); ALTER TABLE lock_tab ADD ( * ERROR at line 1: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired ALTER SESSION SET ddl_lock_timeout=30; ALTER TABLE lock_tab ADD ( description VARCHAR 2(50) ); -- session 1 COMMIT; -- session 2 Table altered.
Görünmez Indeksler • CBO'nun indeksiz davranmasına zorlamak amacı ile, arkada indeks bakimi devam ediyor aslında. VISIBILITY kolonu [DBA|ALL|USER]_INDEXES görüntülerinde değeri görmek için kullanılabilir. DROP INDEX etkisi testi için kullanışlı olabilir. CREATE TABLE ii_tab ( id NUMBER ); BEGIN FOR i IN 1. . 10000 LOOP INSERT INTO ii_tab VALUES (i); END LOOP; COMMIT; END; / CREATE INDEX ii_tab_id ON ii_tab(id) INVISIBLE; EXEC DBMS_STATS. gather_table_stats(USER, 'ii_tab', cascade=> TRUE); SET AUTOTRACE ON SELECT * FROM ii_tab WHERE id = 9999; --------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------| 0 | SELECT STATEMENT | | 1 | 3 | 7 (0)| 00: 01 | |* 1 | TABLE ACCESS FULL| II_TAB | 1 | 3 | 7 (0)| 00: 01 | --------------------------------------ALTER SESSION SET OPTIMIZER_USE_INVISIBLE_INDEXES=TRUE; SELECT * FROM ii_tab WHERE id = 9999; ---------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---------------------------------------| 0 | SELECT STATEMENT | | 1 | 3 | 1 (0)| 00: 01 | |* 1 | INDEX RANGE SCAN| II_TAB_ID | 1 | 3 | 1 (0)| 00: 01 | ---------------------------------------
Salt okunur tablolar • 11 g öncesinde bir tabloyu sahibi dışında GRANT'ler üzerinden salt okunur kılmak mümkündü, bu yeni özellikle sahibi dahil tüm kullanıcılara DML/DDL işlemler tablo üzerinde yasaklanabiliyor. READ_ONLY kolon [DBA|ALL|USER]_TABLES görüntülerinde durumu gösteriyor. CREATE TABLE ro_tab ( id NUMBER ); INSERT INTO ro_tab VALUES (1); ALTER TABLE ro_tab READ ONLY; SQL> INSERT INTO ro_tab VALUES (2); SQL> UPDATE ro_tab SET id = 2; SQL> DELETE FROM ro_tab; SQL> TRUNCATE TABLE ro_tab; SQL> ALTER TABLE ro_tab ADD (description VARCHAR 2(50)); ORA-12081: update operation not allowed on table "TEST". "RO_TAB“ ALTER TABLE ro_tab READ WRITE;
SEQUENCE kullanımı declare l_seq number; begin select orders_seq. nextval into l_seq from dual; . . . end; declare l_seq number : = orders_seq. nextval; begin. . . end;
SQL motorundan PL/SQL işlev çağırımı iyileştirmesi function f_get_cnt (p_deptno in deptno%type : = null , p_loc in dept. loc%type : = null ) return number SQL> select ename 2 , f_get_cnt (p_loc => ‘NEW YORK’) 3 from emp 4 /
CONTINUE begin for i in 1. . 3 loop dbms_output. put_line ('i= '||to_char(i)); if i = 2 then null; else dbms_output. put_line ('Only if i is not equal to 2'); end if; end loop; end; begin for i in 1. . 3 loop dbms_output. put_line ('i= '||to_char(i)); continue when i = 2; dbms_output. put_line ('Only if i is not equal to 2'); end loop; end;
Trigger tetiklenme sırası yönetimi Hangisi daha önce çalışacak? create or replace trigger emp_bir_1 before insert on emp for each row before insert on emp begin for each row . . . begin end emp_bir_1; . . . end emp_bir_1; create or replace trigger emp_bir_2 before insert on emp for each row before insert on emp follows emp_bir_1 for each row begin . . . end emp_bir_2; DISABLED Trigger yaratma CREATE OR REPLACE TRIGGER trigger_control_test_trg BEFORE INSERT ON trigger_control_test FOR EACH ROW DISABLE BEGIN DBMS_OUTPUT. put_line('TRIGGER_CONTROL_TEST_TRG - Executed'); END; /
Bağımlılık takibi 10 g create table t (x int create package body pkg is , y int procedure only_on_y ); is begin for rec in (select y alter table t add z int from t ) loop. . . end loop; end pkg; INVALID
Bağımlılık takibi 11 g create table t (x int create package body pkg is , y int procedure only_on_y ); is begin for rec in (select y from t alter table t add z int ) loop. . . end loop; end pkg; VALID
WHEN OTHERS derleme uyarısı
SIMPLE_INTEGER • PLS_INTEGER tipinden daha etkin • NOT NULL constraint nedeni ile ön değer atanmalı declare cnt simple_integer : = 0; begin cnt : = cnt + 1; end; declare cnt $if dbms_db_version. ver_le_10_2 $then pls_integer not null $else simple_integer $end : = 0; begin cnt : = cnt + 1; end;
SQL Operatörleri ve İşlevleri için Metadata bilgisi • V$SQLFN_METADATA ve V$SQLFN_ARG_METADATA isimli yeni görüntüler üzerinden erişilebiliniyor, özellikle 3. parti ürünler için kullanışlı görüntüler. SQL> set linesize 2500 SQL> SELECT * FROM v$sqlfn_metadata where name = 'REGEXP_SUBSTR' ; FUNC_ID NAME MINARGS MAXARGS DATATYPE VERSION ANA AGG DISP_TYPE USAGE DESCR -------------------- ------------ --- --------------------526 REGEXP_SUBSTR 2 5 STRING V 10 Oracle NO NO NORMAL SQL> SELECT * FROM v$sqlfn_arg_metadata WHERE func_id = 526 ; FUNC_ID ARGNUM DATATYPE DESCR -------------------526 1 STRING 526 2 STRING 526 3 NUMERIC 526 4 NUMERIC 526 5 STRING
Güle güle Outline’lar [ metalink 11 g Upgrade Companion ] Oracle highly recommends the use of SQL plan baselines instead of the stored outlines after 11 g. R 1. With Oracle Database 11 g using the SQL Plan Management (SPM) the optimizer automatically manages plans and ensures that only verified or known plans are used. SQL Plan Management allows controlled plan evolution by only using a new plan after it has been verified to be perform better than the current plan. You should also use SQL Plan Management as part of your upgrade strategy. Please see the best practices section for more information. [ /metalink 11 g Upgrade Companion ] • Başka ‘güle’ler de var: Oracle Ultra Search, Java Development Kit(JDK) 1. 4, CTXXPATH index
DBMS_COMPARISON 1/2 • Tablo ve görüntüleri kıyaslamak için bir hazır paket, dblink üzerinden de çalışabiliyor • Paketin arkasında 10 g ile gelen ORA_HASH SQL işlevi kıyaslama amacı ile kullanılıyor. conn hr/hr DROP TABLE depts PURGE ; CREATE TABLE depts NOLOGGING AS SELECT * FROM departments ; CREATE UNIQUE INDEX ui_depts ON depts(department_id) NOLOGGING ; DELETE FROM depts WHERE department_id = 10; COMMIT; exec dbms_comparison. create_comparison(comparison_name=>'compare_test', schema_name=>'HR', object_name=>'DEPTS', dblink_name=>NULL, remote_schema_name=>'HR', remote_object_name=>'DEPARTMENTS', scan_percent=>90); set serveroutput on DECLARE retval dbms_comparison_type; BEGIN IF dbms_comparison. compare('compare_test', retval, perform_row_dif=>TRUE) THEN dbms_output. put_line('No Differences'); ELSE dbms_output. put_line('Differences Found'); END IF; END; / Differences Found PL/SQL procedure successfully completed.
DBMS_COMPARISON 2/2 set null @ set colsep | set linesize 2500 select * FROM user_comparison_row_dif ; COMPARISON_NAME |REMOTE_ROWID | SCAN_ID|LOCAL_ROWID INDEX_VALUE STA|LAST_UPDATE_TIME COMPARE_TEST | 4|@ 10 DIF|04 -OCT-08 02. 58. 03. 306182 PM exec dbms_comparison. drop_comparison( comparison_name=>'compare_test') ; SELECT FROM , , WHERE AND AND AND . . USER_COMPARISON_COLUMNS c USER_COMPARISON_ROW_DIF r USER_COMPARISON_SCAN s c. COMPARISON_NAME = 'COMP_EMP_N_CLONE' r. SCAN_ID = s. SCAN_ID s. scan_id = &scan_id r. STATUS = 'DIF' c. INDEX_COLUMN = 'Y' c. COMPARISON_NAME = r. COMPARISON_NAME |AAARADAAFAAAAA 3 AAA DECLARE scan_info DBMS_COMPARISON_TYPE; BEGIN DBMS_COMPARISON. CONVERGE ( comparison_name => 'compare_emp_and_clone' , scan_id => &scan_id , scan_info => scan_info , converge_options => DBMS_COMPARISON. CMP_CONVERGE_REMOTE_WINS ); DBMS_OUTPUT. PUT_LINE('Remote Rows Merged: ' ||scan_info. rmt_rows_merged); DBMS_OUTPUT. PUT_LINE('Remote Rows Deleted: ' ||scan_info. rmt_rows_deleted); END;
Global temporary table’larınız için başka bir TEMP Tablespace belirtme SQL> create temporary tablespace etl_temp 2> tempfile '+DG 1/etl_temp_01. dbf' 3> size 1 G; Tablespace created. SQL> create global temporary table data_load ( 2> input_line varchar 2 (2000) 3> ) 4> on commit preserve rows 5> tablespace etl_temp; Table created. • GTT kullanıcının default temporary tablespace'i TEMP yerine ETL_TEMP tablespace’i altında yaratılır.
LISTAGG SELECT deptno, LISTAGG(ename, '; ') WITHIN GROUP (order by ename) FROM emp GROUP BY deptno; DEPTNO -----10 20 30 LISTAGG(ENAME, '; ')WITHINGROUP(ORDERBYENAME) ---------------------CLARK; KING; MILLER ADAMS; FORD; JONES; SCOTT; SMITH ALLEN; BLAKE; JAMES; MARTIN; TURNER; WARD 29
Pivot SALES_BY_QUARTER SALESREP 'Q 1' 'Q 2' 'Q 3' 'Q 4' ----- -----100 230 240 260 300 101 200 220 250 260 102 260 280 265 310 SALESREP -----100 100 101 101 102 QU REVENUE -- -----Q 1 230 Q 2 240 Q 3 160 Q 4 90 Q 3 100 Q 4 140 Q 4 70 Q 1 200 Q 2 220 Q 3 250 Q 4 260 Q 1 260 select * from sales_by_quarter pivot (sum(revenue) for quarter in ('Q 1', 'Q 2', 'Q 3', 'Q 4')) order by salesrep ;
Unpivot QUARTERLY_SALESREP Q 1 Q 2 Q 3 Q 4 ----- -----100 230 240 260 300 101 200 220 250 260 102 260 280 265 310 SALESREP -----100 100 101 101 102 102 QU REVENUE -- -----Q 1 230 Q 2 240 Q 3 260 Q 4 300 Q 1 200 Q 2 220 Q 3 250 Q 4 260 Q 1 260 Q 2 280 Q 3 265 Q 4 310 select * from quarterly_sales unpivot include nulls (revenue for quarter in (q 1, q 2, q 3, q 4)) order by salesrep, quarter ;
SQL Result Cache Kavramı Select , from group deptno avg(sal) huge_emp by deptno; 2 sn. (parse & fetch) 1. 23 sn. (parse yok ama yine fetch) 1. 22 sn. (yine sadece fetch)
Result Cache Hint select /*+ result_cache */ deptno , avg(sal) from super_emp group by deptno; Execution Plan -----------------------------Plan hash value: 3044997086 -------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------| 0 | SELECT STATEMENT | | 3 | 21 | 4 (25)| 00: 01 | | 1 | RESULT CACHE | 7 nvxyd 4 t 2 fu 8 rc 25 rh 5 w 5 p 922 n | | | 2 | HASH GROUP BY | | 3 | 21 | 4 (25)| 00: 01 | | 3 | TABLE ACCESS FULL| SUPER_EMP | 14 | 98 | 3 (0)| 00: 01 | -------------------------------------------------Result Cache Information (identified by operation id): ---------------------------1 - column-count=2; dependencies=(SCOTT. SUPER_EMP); name="SELECT /*+ result_cache */ deptno, avg(sal)
PL/SQL Result Cache Kavramı create or replace function test_result_cache ( p_in in number) return number is begin dbms_lock. sleep (5); return p_in; end; declare l_num number; begin l_num: = test_result_cache(1); end; 15. 13 sn.
PL/SQL Result Cache Kavramı create or replace function test_result_cache (p_in in number) return number result_cache is begin dbms_lock. sleep (5); return p_in; end; declare l_num number; begin l_num: = test_result_cache(1); end; 5, 02 sn.
Result Cache Invalidasyonu create or replace function test_result_cache (p_in in number) return number result_cache is retval number; begin Referans edilen tablo içeriği select rn değişse bile hep aynı sonucu döndürür into retval from t where rn = p_in ; dbms_lock. sleep (1); return retval; end;
Result Cache Invalidasyonu create or replace function test_result_cache (p_in in number) return number result_cache relies_on (T) is retval number; begin select rn Referans edilen tablolar değiştiğinde into retval Result Cache de kullanılmaz duruma geçsin. . from t where rn = p_in ; dbms_lock. sleep (1); return retval; end;
Kıyamadıklarım • REGEXP_COUNT yeni Regular Expression SQL işlevi aranan paternin kaç kez kaynak string içinde geçtiğini döndürüyor. • 11 g ile artık cidden online index rebuild ONLINE: exclusive lock artık oluşmuyor ve DML’ler etkilenmiyor. • DBMS_SCHEDULER Lightweight Jobs, Email Notification, File Watcher, Remote Database Jobs • DBMS_HPROF PL/SQL Hierarchical Profiler • DBMS_PARALLEL_EXECUTE
Kıyamadığım birkaç tane daha • Yeni V$OSSTAT ve V$STATISTICS_LEVEL istatistikleri, ve bir çok ilginç yeni görüntü: V$SQL_CS_HISTOGRAM, V$SQL_CS_SELECTIVITY, V$SQL_CS_STATISTICS, V$SQL_FEATURE, V$SQL_HINT, V$SQL_MONITOR, V$SQL_PLAN_MONITOR, V$IOSTAT_* • PL/SQL Bulk Insert ve APPEND_VALUES hint FORALL i IN l_tab. first. . l_tab. last INSERT /*+ APPEND_VALUES */ INTO forall_test VALUES l_tab(i); • tkprof artık SQL ID değerini başlıkta gösteriyor. • DBMS_REDEFINITION online table redefinition bağımlı nesneleri(PL/SQL, views, synonyms) INVALID durumuna artık düşürmüyor • “Bağlantımdan oluşan Trace dosyası ne isimde” artık çok kolay: select value from v$diag_info where name = 'Default Trace File' ; VALUE --------------------------------------/u 01/app/oracle/diag/rdbms/tong/trace/tong_ora_4402_IDENTIFIER. trc
Oku, dene, sorgula, geliştir, *paylaş*. . Kaynakça – • Tim Hall's Oracle 11 g Articles: http: //oracle-base. com/articles/11 g/Articles 11 g. php • Oracle 11 g for Developers: Lucas Jellema & Alex Nuijten, AMIS • 11 g The Perfection of a Masterpiece: Christo Kutrovsky, Pythian • Top 10, no – make that 11, things about Oracle Database 11 g: Thomas Kyte, http: //asktom. oracle. com • Oracle Database 11 g For Developers: Thomas Kyte, http: //asktom. oracle. com • New Features Documentation @ http: //tahiti. oracle. com • Oracle® Database New Features Guide 11 g Release 1 (11. 1): http: //download. oracle. com/docs/cd/B 28359_01/server. 111/b 28279/toc. htm • Oracle® Database New Features Guide 11 g Release 2 (11. 2): http: //download. oracle. com/docs/cd/E 11882_01/server. 112/e 17128/toc. htm • Daniel Morgan’s Oracle Cheatsheet Library: http: //www. morganslibrary. org/library. html • Arup Nanda's Oracle Database 11 g The Top New Features for DBAs and Developers OTN Series: http: //www. oracle. com/technetwork/articles/sql/index-099021. html
TTECH & Oracle Türkiye’ye destekleri için çok teşekkürler ? ? ? ? z ı n ı r a l u r So ve/veya z ı n ı r a l m yoru ? ? ? H. Tonguç Yılmaz tonguc. yilmaz@gmail. com http: //friendfeed. com/Tonguc. Y
TROUG @ Oracle Day • TROUG Stand • DBA'ler için Oracle veritabanı 11 g yeni özellikleri: Zekeriya Beşiroğlu, Bilginç Akademi • Veritabanı geliştiricileri için Oracle veritabanı 11 g yeni özellikleri: H. Tonguç Yılmaz, ACE, Turkcell Teknoloji • Veri ambarı ve Exadata Oracle veritabanı 11 g yeni özellikleri: Hüsnü Şensoy, ACE Director, Global Maksimum • Panel: TROUG Roundtable
- Slides: 42