Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-09-2009, 17:57   #1
mirmanero
Junior Member
 
Iscritto dal: Aug 2009
Messaggi: 14
[SQL] Problema indice locale Oracle

Ciao a tutti,
ho un problema che mi sta facendo impazzire:

ho una tabella "Tabella" partizionata per data e con un indice locale su un campo che chiamerò A. Se effettuo un semplice query del tipo

select * from Tabella
where data = '01-gen-09'
and A = 'a'

la risposta è molto veloce, dal momento che prima viene selezionata la partizione tramite la data poi vengono selezionati i dati che soddisfano la condizione sul campo A (come confermato dal piano di esecuzione).

Fin qui tutto bene, ma utilizzando una tabella "Calendario" che mi collega due date diverse (che chiamo data1 e data2), con data1 chiave primaria ed effettuando una query del tipo:

select Tabella.* from
Tabella,
Calendario
where Calendario.data1='01-gen-09'
and Tabella.data=Calendario.data2
and Tabella.A='a'

la query diventa lentissima, infatti il piano di esecuzione mi dice che prima accede a tutte le partizioni di Tabella tramite l'indice e solo dopo sceglie quale partizione utilizzare.

Ho provato a guardare le hint ma non ho trovato il modo per forzarlo a invertire le due operazioni.

Qualcuno ha qualche suggerimento???

Grazie!!
mirmanero è offline   Rispondi citando il messaggio o parte di esso
Old 11-09-2009, 00:53   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Prova con la seguente

select /*+ORDERED*/ Tabella.* from
Calendario,
Tabella
where Calendario.data1='01-gen-09'
and Tabella.data=Calendario.data2
and Tabella.A='a'

Comunque non va bene. Prova a ricomputare le statistiche sia delle tabelle che degli indici e lanciare la query senza hint
Eventualmente se del caso ricostruisci la tabella e quindi anche tutte le partizioni prima di ricomputare
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 17-09-2009, 10:45   #3
mirmanero
Junior Member
 
Iscritto dal: Aug 2009
Messaggi: 14
Grazie della risposta, mi sono accorto che in realtà la situazione era leggermente diversa:

la select che ho scritto non veniva fatta direttamente dalla Tabella ma da una vista che faceva la union della Tabella con un'altra tabella molto più piccola che non è partizionata.
La select dalla Tabella (dopo aver fatto rigirare le statistiche) si è comportata correttamente, quella dalla vista no.

Alla fine ho risolto facendo separatamente le select sulle due tabelle per fare la union solo dopo.

Ovviamente rimane da capire il motivo per cui l'ottimizzatore di oracle si comporti così e se si riesca a forzare il piano come volevo io senza modificare la struttura sottostante, ma oramai è solo na curiosità accademica :-P
mirmanero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
C'è un boom del mercato dei data ...
OVHcloud annuncia la disponiiblità...
Il Wi-Fi 7 ha un nuovo re: da ASUS arriv...
In arrivo l'auto "Frankenstein"...
Chip NVIDIA H200 in Cina? 'Come vendere ...
iPhone 16 torna super conveniente: ora c...
Offerte Amazon pazzesche: tech, smartpho...
Ubisoft annuncia l'arrivo dei 60 fps per...
Infratel Italia: ecco la nuova mappa del...
Hoover HMC5 in offerta: il battimaterass...
Un'idea 'rivoluzionaria' dal Politecnico...
Steam ha registrato un record di ricavi ...
'Quando sei pronto… vai': ChatGPT sotto ...
Razer: l'intelligenza artificiale piace ...
Disastro Rad Power Bikes: incendio al ma...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v