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: Database buffer cache


Oracle... Script: Redo log



PLSQL... Script: Leggere un file di testo
Oracle... Tip: TRACE_LEVEL_LISTENER=16
Oracle... Faq: Rename column

Shell scripting... Script: Array in do while construct

A User Agent, like a web browser, uses HTTP to request a HTML document



In programming the danger of exploring the small details of coding is that you get obsessed with every line of code you write, thereby greatly reducing productivity.
In general, is not worth obsessing over code.
On the other hand you should code with deliberation and intent. Steven Feurstein Oracle Magazine July /August 2004

A User Agent, like a web browser, uses HTTP to request a HTML document

Oracle

Home >Oracle > Note sul partizionamento di una tabella per intervallo (RANGE)

Stampa  Stampa


Partizionamente di una tabella per intervallo (RANGE)

Per iniziare, segue un semplice esempio di un partizionamento BY RANGE per data. Per semplicità supponiamo che tabella e partizioni siano assegnate allo stesso tablespace di default, anche se è prassi diffusa organizzare le partizioni in tablespace dedicati.
create table tab_partizionata (n number,d date) 
partition   BY RANGE(d) (
partition P_2005  VALUES LESS THAN (TIMESTAMP '2006-01-01 00:00:00'),
partition P_2006  VALUES LESS THAN (TIMESTAMP '2007-01-01 00:00:00'),
partition P_2007  VALUES LESS THAN (TIMESTAMP '2008-01-01 00:00:00') ); 

Aggiungere una nuova partizione (ADD PARTITION)

Per aggiungere una nuova partizione ADD PARTITION :
ALTER  TABLE tab_partizionata  ADD PARTITION P_2008  VALUES LESS THAN (TIMESTAMP '2009-01-01 00:00:00');

Aggiungere la partizione per i valori non compresi nel range (MAXVALUE)

Si ricorre spesso ad una partizione MAXVALUE per intercettare i valori superiori quelli contemplati nel partizionamento:
ALTER  TABLE  tab_partizionata ADD PARTITION  P_FUTURE  VALUES LESS THAN (MAXVALUE);

Dividere una partizione per aggiungerne una nuova (SPLIT PARTITION)

Se viene inclusa una partizione LESS THAN (MAXVALUE), per aggiungere ulteriori partizioni non è possibile utilizzare ADD PARTITION, ORACLE restituisce l'errore ORA-14074:

alter table tab_partizionata  add partition P_2009  VALUES LESS THAN (TIMESTAMP '2010-01-01 00:00:00');
                                                  *
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition

Pertanto per aggiungere nuove partizioni dopo aver definito una partizione con MAXVALUE si utilizza SPLIT PARTITION (...) INTO , dopo INTO si specifica la nuova partizione, e dopo quella di partenza che viene divisa.
ALTER TABLE tab_partizionata SPLIT PARTITION P_FUTURE AT ( (TIMESTAMP '2010-01-01 00:00:00') ) INTO (PARTITION P_2009, PARTITION P_FUTURE) ;
SPLIT PARTITION divide la partizione e i dati contenuti secondo il criterio stabilito.
Nella tabella di esempio le righe con una data più alta di quella definita nell'ultima partizione (P_2009 ... less then '2010-01-01 ...') siano contenute correttamente nella partizione per i MAXVALUE (P_FUTURE).

Nel prossimo esempio, si verifica che una riga sia inserita prima nella partizione definita con MAXVALUE e dopo lo SPLIT nella partizione con il criterio corrispondente. Se si esegue lo SPLIT di una partizione contenenti i dati occorre tenere presente che il volume di questi ha impatto sui tempi dell'operazione.
-- inserimento di  una riga con data superiore a quella specificata nell'ultima partizione 

insert into tab_partizionata values (100,to_date('2010-03-01','YYYY-MM-DD'));
commit;

--verifica che la riga  sia contenuta nella partizione definita con MAXVALUE

select * from tab_partizionata  partition (P_FUTURE);  

         N D
---------- ---------
       100 01-MAR-10

-- aggiungere una nuova partizione con SPLIT PARTITION
 ALTER TABLE tab_partizionata  SPLIT PARTITION P_FUTURE AT ( (TIMESTAMP '2011-01-01 00:00:00') ) INTO (PARTITION P_2010, PARTITION P_FUTURE) ;


-- verica se la riga si trova adesso nella nuova partizione 
select * from tab_partizionata  partition (P_2010);  

         N D
---------- ---------
       100 01-MAR-10

Elapsed: 00:00:00.01

Specificare la partizione sulla quale estrarre i dati (PARTITION)

Dopo il FROM nome_tabella l'opzione partition(nome_partizione) specifica di eseguire la query solo in quella partizione.
E' possibile specificare solo una partizione.
Generalmente, a secondo della query e altri fattori (indici, statistiche, hint utilizzati, etc.), Oracle tende a sfruttare il partizionamento,se comunque si intende eseguire la query solo su specifiche partizioni è possible, ad esempio, concatenare le query con UNION.
SELECT  * FROM  tab_partizionata  PARTION (P_2009)
 UNION
SELECT  * FROM  tab_partizionata  PARTION (P_2010)

Si sottolinea che il partizionamento presenta dei limiti quando vi si accede da un database remoto via database link.
In questi casi, si consiglia di valutare attentamente i piani di esecuzione, indici, hint e logica applicativa.
Via db linknon è possibile specificare la partizione, Oracle restituisce l'errore ORA-14100:

-- oracle 10g
 select count(1) from tab_partizionata@REMOTE_DB  PARTITION (P_2009) 
                                    *
ERROR at line 1:
ORA-14100: partition extended table name cannot refer to a remote object




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: Conversioni implicita tipi

Anger is creative, depression is useless.
Dyson, Freeman J.


Anger is creative, depression is useless.
Dyson, Freeman J.

Oracle... Info: Shared pool

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

Oracle... Definizioni: Schema

Oracle... Definizioni: Schema and user





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 ®