fishScript.com d
Home| Progetto| Web| Faq| Acronimi

Argomenti

Documenti pubblicabili:1120
Scripts:1282
Documenti non pubblicabili:162
Categorie tematiche:68
.Net
   |_C#
   |_Visual basic.net
   |_Asp.net
Active Server Pages
C++
Cascade Style Sheet
JavaScript
Mysql
Php
Xml
Java
   |_Java 2 Micro Edition
   |_Java server pages
   |_Java Servlet
Oracle
   |_PLSQL
PostgreSQL
Unix

Oracle... Info: SHARED_SERVER


Oracle... Script: dbms_output.put_line



PLSQL... Script: Esempio tipo VARRAY
Oracle... Faq: Rename column


Un servizio Web XML è un'unità logica di applicazioni che fornisce dati e servizi ad altre applicazioni. Le applicazioni accedono ai servizi Web XML tramite protocolli Web universali e formati di dati quali HTTP, XML e SOAP.



La J2EE (Java 2 Enterprise Edition) è dedicata a tutti coloro che desiderano aggiungere il supporto della versione Enterprise di Java (ad esempio a Tomcat) e quindi le funzionalità avanzate come Enterprise JavaBeans etc.

Un servizio Web XML è un'unità logica di applicazioni che fornisce dati e servizi ad altre applicazioni. Le applicazioni accedono ai servizi Web XML tramite protocolli Web universali e formati di dati quali HTTP, XML e SOAP.

Oracle

Home >Oracle > Quando sono stati modificati i dati della tabella

Stampa  Stampa


SCN System Change Number or System Commit Number rappresenta un numero univoco progressivo in sequenza che identifica l'ultima modifica nel database (ultimo commit). SCN è l'orologio interno di Oracle.
Oracle utilizza lo SCN in tutti i file del database: control files, datafile headers, redo logs, con esso verifica il loro allineamento. Ogni Commit (implicito o esplicito) genera il successivo SCN.
Si ricorda che anche se le applicazioni degli utenti non eseguono nessuna attività, in un database sono sempre in corso transazioni (come quelle del processo PMON) e quindi SCN è continuamente incrementato, a meno che il database sia aperto in modalità READ ONLY.
In v$DATABASE registra l' SCN corrente.

SQL> COL CURRENT_SCN FORMAT 9999999999999999
SQL> select CURRENT_SCN from v$database

CURRENT_SCN
---------------
12962510371


La funzione SCN_TO_TIMESTAMP traduce in timestamp, in tempo, il valore dell'SCN

SQL> select SCN_TO_TIMESTAMP(CURRENT_SCN) from v$database;
SCN_TO_TIMESTAMP(CURRENT_SCN)
-------------------------------
30-SEP-11 03.39.22.000000000 PM



Se si esegue consecutivamente questa query si nota come il valore cambi in continuazione: Oracle per ogni modifica DML dei dati in tabella assegna al blocco impattato lo SCN corrente.
ORA_ROWSCN è la pseudocolonna contenente lo SCN dell'ultima modifica avvenuta all'interno del blocco appartentente alla riga. Anche se l'istruzione di DELETE/INSERT/UPDATE impatta solo una riga tutte le altre righe appartenti al blocco saranno aggiornate.
Segue un esempio creando una semplice tabella
create table T (N number) tablespace USERS STORAGE;

Con DBA_TABLES verifichiamo i blocchi allocati alla tabella , dopo la il lancio della raccolta statistica
SQL> analyze table t compute statistics;
Table analyzed.

SQL>  SELECT blocks as BLOCKS_USED, empty_blocks FROM dba_tables where table_name='T' ;

BLOCKS_USED EMPTY_BLOCKS
----------- ------------
          0            8


La seguente procedura, che viene eseguita in pochi secondi, popola la tabella di 120.000 righe, eseguendo commit ogni 40000 righe.
set linesize 300
set serveroutput on 

begin
for i in 1..120000 loop
insert into T values (i);
if mod(i,40000)=0 then
dbms_output.put_line('commit at : ' || i);	
commit;
end if; 
end loop;
end;
/
PL/SQL procedure successfully completed.
commit at : 40000
commit at : 80000
commit at : 120000


Dopo il popolamento la tabella contiene più blocchi

SQL>  analyze table t compute statistics;

Table analyzed.

Elapsed: 00:00:00.44
SQL>  SELECT blocks as BLOCKS_USED, empty_blocks FROM dba_tables where table_name='T' and owner='SYS' ;

BLOCKS_USED EMPTY_BLOCKS
----------- ------------
        244           12


Si può verificare che per ogni commit è stato associato il contemporaneo SCN.

 select distinct (ORA_ROWSCN) from t;

SQL>  select distinct (ORA_ROWSCN) from t;

ORA_ROWSCN
----------
7957269511
7957268743
7957269153

Se una riga viene modificata, il ORA_ROWSCN di tutto il blocco di appartenenza viene aggiornato:

-- verifichiamo ORA_ROWSCN della riga con N=1
SQL> select ORA_ROWSCN from T where N=1;

7957269511

-- eseguiamo modifica DML su questarigha
update t set n=0.1 where n=1;
commit;			

-- verifichiamo il cambio dell'SCN 				
SQL>select ORA_ROWSCN from T where N=0.1;
7957272189

-- verifichiamo che SCN ha impattattato tutte le righe contando quante righe ORA_ROWSCN 
select count(1) from T where ORA_ROWSCN = (select ORA_ROWSCN from T where N=0.1);

  COUNT(1)
----------
       660

ORA_ROWSCN diventa quindi uno strumento per verificare quando è avvenuta l'ultima modifica dei dati di una tabella
 select max(SCN_TO_TIMESTAMP(ORA_ROWSCN )) from t;
MAX(SCN_TO_TIMESTAMP(ORA_ROWSCN))
--------------------------------------------------------------
03-OCT-11 12.56.39.000000000 PM




Dott. Marco Magnani DBA Telecommunication sector




Warning: include(ads/text468x15.html): failed to open stream: No such file or directory in D:\inetpub\webs\fishscriptcom\documents\view_document.php on line 131

Warning: include(): Failed opening 'ads/text468x15.html' for inclusion (include_path='.;C:\php\pear') in D:\inetpub\webs\fishscriptcom\documents\view_document.php on line 131

Tutorial
Flashback database to timestamp ripristinare il database ad una data determinata  [Oracle] 
Auditing for wrong sql How to intercept wrong dml sql statement   [Oracle] 
Using data pump in interactive mode   [Oracle] 
Alter session set current_schema How to query other user tables without specify the schema name  [Oracle] 
Procedura conteggio righe tutte le tabelle di uno schema esempio utilizzo NDS  [PLSQL] 
Inserire righe in tabelle utilizzando %rowtype scrivere codice pl/sql compatto  [PLSQL] 
Generazione di numeri casuali dbms_random.value  [PLSQL] 
Eseguire comando truncate di tutte le tabelle di uno schema atraverso dizionario dati e istruzione sql dinamica   [PLSQL] 
Dropping a database   [Oracle] 
Create new user basic sql statements  [Oracle] 
Viste note e appunti  [Oracle] 
NOT EXISTS clause basic example  [Oracle] 
Creazione di un database Oracle 10g da linea di comando esempio su sistemi Windows Server / XP: comandi e script  [Oracle] 
Clean up audit tables remove auditing logs   [Oracle] 
Nomenclatura oracle tipologie oggetti catalogo   [Oracle] 
Script
dbms_output.put_line Stampare spazi bianchi  [Oracle] 
Opzione DEFAULT per il valore di una colonna   [Oracle] 
Cercare le colonne in uno schema utilizzare le tabelle del dizionario dati di Oracle  [Oracle] 
Esempio script dos per eseguire export di schema automatizzare procedure di export e rinominare il file in base alla data corrente  [Oracle] 
Dato il nome di una vista ricava informazioni su tipo e attributi della colonna di riferimenti tabelle dizionario dati  [Oracle] 
Redo log ricollocare/trasferire i file di Redo  [Oracle] 
Scrivere su un file esempio con UTL_FILE package  [PLSQL] 
Leggere un file di testo   [PLSQL] 
Esempio funzione MOD in un loop ...  [PLSQL] 
Record sintassi di base: definizione, dichiarazione, assegnazione e stampa  [PLSQL] 
Errori intercettare codice e descrizione errori sql  [PLSQL] 
Esempio inserimento righe all'interno di un loop   [PLSQL] 
Cursore implicito SQL esempio con SQL%ROWCOUNT  [PLSQL] 
Esempio tipo VARRAY gestione array  [PLSQL] 
TYPE TABLE utilizzare le collections  [PLSQL] 
Comandi
Modificare il formato di default   [Oracle] 
systimestamp   [Oracle] 
CURRENT_TIMESTAMP   [Oracle] 
Spostare un indice in un diverso tablespace   [Oracle] 
analyze   [Oracle] 
Costruire istruzioni sql dinamiche il carattere speciale &   [Oracle] 
Exp utility esempio export di singole tabelle  [Oracle] 
Group by mese di colonna di tipo data   [Oracle] 
ALTER SEQUENCE Modificare una sequenza  [Oracle] 
Spazio libero nei tablespace utilizzo tabella DBA_FREE_SPACE  [Oracle] 
NLS_DATABASE_PARAMETERS ricavare i parametri del database  [Oracle] 
Lista control files   [Oracle] 
Spostare una tabella in un diverso tablespace   [Oracle] 
Creazione di una directory in ambiente oracle   [Oracle] 
Funzione TRUNC esempio visualizzazione primo giorno del mese corrente  [Oracle] 
Codici errore
Errore connessione client ORA-12638 Credential retreival failed  [Oracle] 
impdp / expdp importare in sql metadata del database datapump per esportare ed importare metatadati   [Oracle] 
ORA-06553: PLS-213,ORA-06553: PLS-213,ORA-06553: PLS-213 Errori in fase di creazione database, occorre eseguire gli script di catalog  [ERRORI] 
Operazioni sulle date utilizzando il nome dei mesi NLS_DATE_LANGUAGE ORA-01843: mese non valido / not a valid month  [Oracle] 

signal Marco Magnani marcomagnani@fishscript.com



Cerca




Oracle... Info: dbms_output.put_line

Well-formedness is a new concept introduced by [XML]. Essentially this means that all elements must either have closing tags or be written in a special form (as described below), and that all the elements must nest properly.


Well-formedness is a new concept introduced by [XML]. Essentially this means that all elements must either have closing tags or be written in a special form (as described below), and that all the elements must nest properly.

Oracle... Info: Trace backup file

Oracle... Citazioni: Designing an efficient Schema ...

Oracle... Definizioni: Transazione

Oracle... Definizioni: Area PGA





fishScript.Com is accessible by Mobile access technology as mobile phones, Palm and Pocket PC .

Nicoleta e Marco Magnani tutorial, examples, courses, esempi, corsi, esercizi, appunti vari Dottoressa Nicoleta Dragu Formatrice Docente Insegnante Mediatrice Culturale Dott. Marco Magnani Universita La Sapienza Roma Master Computer Science Hunter College New York , Data Base Administrator DBA oracle System architect

Last modified: 2017-11-30 amministratore@fishscript.comNico and Marco Magnani Software Production
Home|About this Site © 2003-2008 www.fishScript.com ®