După ce în urma cu un an am scris aici ce noutăți aduce versiunea 11g Release 2, iată ca a sosit momentul sa trecem în revista noutățile destinate celor care programează în noua versiune Oracle Database12c.

Câteva cifre despre Oracle Database 12c:

Pe 1 iulie 2013 Oracle lansează prima baza de date destinată mediului cloud și totodată prima modificare de arhitectură Oracle din 1988! Pentru aceasta versiune a fost nevoie de:

  • 5 ani de dezvoltare
  • 500 de noi caracteristici
  • 2.500 de dezvoltatori
  • 3.000 de sisteme utilizate în teste
  • 1 milion de teste de caracteristici exploatate zilnic
  • 1,2 milioane de ore de teste de stres

Mai jos sunt primele 15 noi caracteristici ale Oracle Database 12c pentru dezvoltatori.

1. Îmbunătățiri ale clauzei WITH

În Oracle 12c, este posibil să se utilizeze o funcție PL / SQL într-o clauza WITH

Exemplu:

WITH
    FUNCTION commission(sal number)
    RETURN number
    IS
    BEGIN
       return sal * 1.1;
    END;
    SELECT ename, sal, commission(sal)
    FROM emp;

2. Valorile implicite pentru coloane bazate pe secvențe Oracle

Valorile implicite pentru coloane se pot referi direct la secvențe Oracle. Valorile valide sunt sequence.CURRVAL și sequence.NEXTVAL.

Exemplu:

Create table my_table
(
id number default my_sequence.nextval primary key
);

3. Coloane „IDENTITY”

Putem defini coloane cu identificatorul IDENTITY care este cuvint cheie SQL American National Standards Institute (ANSI). Acest lucru oferă o abordare bazată pe standarde pentru a declara coloane cu incrementarea în mod automat iar în final va duce la simplificarea dezvoltărilor de aplicații și face migrarea instrucțiunilor DDL mult mai simplă.

Exemplu:

create table my_table
(
id number generated as identity
);

4. Creșterea limitei de dimensiune pentru VARCHAR2, NVARCHAR2 și tipuri de date RAW

Lungimea tipurile de date VARCHAR2, NVARCHAR2 și RAW a fost extinsă de la 4000 la 32767 bytes.

Deci, tipul LOB este mai puțin necesar iar acest lucru ar putea avea un impact semnificativ asupra utilizarea memoriei și discului bazei de date.

5. Coloane invizibile

O coloană definită ca invizibilă nu va apărea în interogări generice (select * from), trebuie să fie menționată în mod explicit în declarația SQL sau în clauza WHERE și să fie menționată explicit în declarația INSERT pentru a introduce date.

Exemplu:

create table users
(
id number,
name varchar2(100),
email varchar2(255),
password varchar2(100) INVISIBLE
);

SQL>desc users
Name                      Null?        Type
------------ ------------- -------------------------
ID                                           NUMBER
NAME                                     VARCHAR2(100)
EMAIL                                    VARCHAR2(255)

6. Indecși multipli pe aceleași coloane

Înainte de Oracle Database 12c, nu am fi putut avea mai multi indecși pe o singură coloană. În Oracle Database 12c o coloană poate avea mai multi indecși cat timp are caracteristici diferite. Caracteristicile de calificare sunt:

  • B-tree versus bitmap
  • Strategii diferite de partiționare
  • Unique versus nonunique

7. Cascade pentru TRUNCATE și EXCHANGE partition

TRUNCATE (sau EXCHANGE partition) poate fi executat cu opțiunea CASCADE, iar în acest caz va șterge înregistrările copil.

Exemplu:

TRUNCATE TABLE my_table CASCADE;

8. Suport SQL nativ pentru limitarea interogărilor

Clauzele FETCH FIRST și OFFSET oferă suport nativ limbajului SQL pentru a limita numărul de rânduri returnate și pentru a specifica un rând de pornire pentru setul de retur.

Numeroase interogări au nevoie de limitarea numărul de rânduri returnate, o interogare Top-N este utilizată pentru a prelua partea de sus sau de jos N rânduri de la un set ordonat.
FETCH FIRST și OFFSET simplifica sintaxa în conformitate cu standardul ANSI SQL.

Exemplu:

SELECT ename, sal
FROM emp
ORDER BY sal DESC
FETCH FIRST 5 ROWS ONLY;

9. Redenumirea/mutarea online a fișierelor de date

Oracle Database 12c oferă un mod simplu on-line pentru redenumirea sau mutarea fișierelor de date folosind comanda „ALTER DATABASE MOVE DATAFILE”. Fișierele de date pot fi migrate on-line de la ASM la NON-ASM și NON-ASM pentru ASM.

Exemplu:

Redenumire datafile:  
  SQL> ALTER DATABASE MOVE DATAFILE '/u01/oradata/indx.dbf' TO '/u01/oradata/indx_01.dbf';
Mutare Datafile:    
  SQL> ALTER DATABASE MOVE DATAFILE '/u01/oradata/indx.dbf' TO '/u01/oradata/orcl/indx.dbf';
NON-ASM to ASM:   
  SQL> ALTER DATABASE MOVE DATAFILE '/u01/oradata/indx.dbf' TO '+DISKGROUP_DATA01';

10. Mutare online a tabelelor partiționate către alt tablespace 

Operațiunea a devenit mai ușoară fără să necesite măsuri complexe.

Exemplu:

 SQL> ALTER TABLE MY_LARGE_TABLE MOVE PARTITION MY_LARGE_TABLE_PART1 TO TABLESPACE USERS_NEW;

11. UNDO temporar

Înainte de Oracle Database 12c, înregistrările UNDO ale tabelelor temporare erau stocate în tablespace-ul UNDO. Cu optiunea UNDO temporar din Oracle Database 12c, înregistrările undo ale tabelelor temporare pot fi stocate într-o altă tabelă temporară. Principalele beneficii sunt:

  • utilizarea redusa a tablespace-ului UNDO
  • mai puține date redo generate.

Pentru a utiliza acest parametru compatibilitatea trebuie să fie setată la 12.0.0 sau mai mare și parametru TEMP_UNDO_ENABLED trebuie să fie ENABLED.

12. Auditarea DDL

Prin utilizarea parametrul ENABLE_DDL_LOGGING din Oracle Database 12c, se poate audita acțiunea DDL în fișiere XML și fișiere jurnal pentru a capta cazurile în care a fost folosita comanda create sau drop. Parametrul poate fi setat la nivelul bazei de date sau al sesiunii.

SQL> ALTER SYSTEM SET ENABLE_DDL_LOGGING=TRUE;

13. Parametrul PGA_AGGREGATE_LIMIT

Înainte de Oracle Database 12c nu a existat nici o opțiune pentru a limita și a controla dimensiunea PGA. Acum prin folosirea parametrului PGA_AGGREGATE_LIMIT Oracle va abandona în mod automat sesiunea care deține memoria PGA atunci când limita de PGA depășește valoarea definită.

14. Sintaxa SQL în RMAN

De la Oracle Database 12c, putem executa orice instrucțiune SQL și PL / SQL în RMAN fără prefixul SQL.

15. Oprirea logurilor redo pentru import DATA PUMP

Opțiunea TRANSFORM, DISABLE_ARCHIVE_LOGGING, din comanda impdp determina Oracle DATA PUMP sa dezactiveze înregistrarile logurilor redo  atunci când se încărca datele în tabele și la crearea indecsilor. Această caracteristică oferă o mare ușurare atunci când se importă multe date și reduce generarea excesiva a logurilor redo , ceea ce duce la un import mai rapid. Acest atribut se aplică la tabele și indecși.

Exemplu:

impdp directory=mydir dumpfile=mydmp.dmp logfile=mydmp.log TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s