Modificare banner sqlplus

Despre cei meticuloși se spune că dau atenție în mod exagerat unor amănunte care nu întotdeauna sunt importante iar aceste persoane de cele mai multe sunt numiți tipicari, migăloși sau riguroși. Nu știu dacă sunt multi dintre voi care au dorit sa recompileze librăriile Oracle astfel încât la fiecare conectare cu sqlplus sa nu mai fie afișat banner-ul cu opțiunile care deși nu sunt folosite vor fi instalate cel puțin în versiunile Enterprise. Spre exemplu:

[oracle@localhost lib]$ sqlplus system/****

SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 29 02:48:50 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Last Successful login time: Thu Dec 29 2016 02:44:48 -05:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

Eu am dorit sa scap de rândul îngroșat de mai sus iar în cele ce urmează veți vedea cat este de simplu de realizat acest lucru.

Noutăți Oracle 12c Release 2

Pe 26 octombrie 2015 Oracle a anunțat în cadrul evenimentului OpenWorld ținut în San Francisco disponibilitatea bazei de date Oracle 12c Release 2 Beta. In prezent această versiune este disponibilă doar clienților Oracle Cloud.

Noua versiune aduce câteva schimbări și multe funcționalități noi, fără nici o urmă de îndoială este optimizată pentru platforma cloud și este ușor de intuit în ce direcție vor fi următoarele tendințe.

Auto Incrementarea Coloanelor Cu Ajutorul Secventei

Să presupunem că avem o bază de date și dorim ca fiecare intrare să fie identificată printr-un număr unic. Înaintea versiunii de bază de date Oracle 11g acest lucru era posibil doar cu ajutorul unui SELECT apelat într-un trigger. Această modalitate de incrementare necesită un swich de context de la motorul PL/SQL la motorul SQL.

create table test_table
(
id number primary key
);

Rezolvarea evenimentelor comune de performanta în Oracle

Un eveniment de așteptare (wait) este în esență înregistrarea de timp petrecută pe executarea unei părți a codului de către serverul de baze de date Oracle. Granularitatea evenimentelor de așteptare poate diferi între versiunile Oracle. Evenimentele de așteptare pot descrie interacțiunea cu sistemul de operare (citire sau scrierea), dar, de asemenea, interacțiunea dintre procese (de exemplu inter-process communication)Un eveniment de așteptare nu este necesar un lucru rău. Fiecare proces de baze de date Oracle fie execută pe CPU, fie așteptă. În cazul în care o sesiune din SQL * Plus  nu execută nimic, atunci va exista un eveniment de așteptare pentru SQL*Net message from client, ceea ce înseamnă că baza de date așteaptă următoarea instrucțiune.

Există peste 800 de evenimente de așteptare, dar cele mai frecvent întâlnite sunt mai puțineÎn acest articol încerc să acopăr cele mai populare dintre evenimentele de așteptare.

DBMS_PROFILER

Pachetul DBMS_PROFILER oferă dezvoltatorilor o modalitate pentru a determina blocaje de performanță ale aplicațiilor PL/SQL. DBMS_PROFILER permite dezvoltatorilor analiza comportamentului și timpului de funcționare a codului PL/SQL și ajută la identificarea problemelor de performanță oferind „numărul de execuții” și „timpul necesar” pentru fiecare linie din blocul PL/SQL.

DBMS_PROFILER generează următoarele statistici:
– Timpul total scurs de la executarea întregului cod.
– Numărul total al execuțiilor pentru fiecare linie de cod.
– Timpul total petrecut în executarea fiecărei linii de cod.
– Timpul minim/maxim petrecut pentru fiecare linie de cod în execuție.
– Codul executat pentru un anumit scenariu și condiții.

Drepturi pe view-uri dinamice

Dacă încercați să acordați drepturi pentru un utilizator sau un rol asupra unui obiect V$views, veți obține eroare ORA-02030.

SQL> grant select on V$SESSION to myuser;
grant select on V$SESSION to myuser
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views

Acest lucru se datorează faptului că încercați să acordați drepturi pe un sinonim. Trebuie să executați grant-ul pe tabela:

SQL> select * from dba_synonyms where synonym_name='V$SESSION';

OWNER      SYNONYM_NAME    TABLE_OWNER    TABLE_NAME      DB_LINK
---------- --------------- -------------- --------------- -----------
PUBLIC     V$SESSION       SYS            V_$SESSION

SQL>grant select on V_$SESSION to myuser;
Grant succeeded.

Etapele de executie interna SQL

Pentru a fi eficienți în operațiile de tuning SQL, orice administrator de baze de date trebuie să înțeleagă modul în care o instrucțiune SQL este transformată de la codul sursă original într-o formă executabilă.

Stadiile principale de procesare SQL sunt următoarele:

  1. Parsarea codului sursă pentru a localiza eventualele erori de sintaxă și căutarea unei copii existentă a instrucțiunii SQL în shared pool
  2. Optimizarea SQL
  3. Generarea SQL Row Source
  4. Execuția SQL