In Oracle ho una tabella partizionata. Le partizioni sono di dimensioni diverse e hanno una diversa distribuzione dei dati.C'è un modo per far sì che Hibernate usi i valori letterali piuttosto che le variabili di bind?
Mi piacerebbe avere un problema di ibernazione istruzioni SQL che include un valore letterale per la colonna chiave di partizione piuttosto che una variabile di binding. Dovrebbe utilizzare le variabili di binding per qualsiasi altro valore, naturalmente.
L'utilizzo di un valore letterale per la chiave di partizione consentirà a Oracle di elaborare un piano specifico per la partizione conosciuta e le statistiche raccolte. Questo potrebbe anche essere utile per le colonne che hanno un istogramma in atto per i dati inclinati.
Sarebbe preferibile specificarlo nell'entità altrimenti dovremo farlo in ogni query. C'è un modo per farlo in letargo?
Siamo in ibernazione 3.6.1 utilizzando Oracle 10g Dialect.
Se non c'è un modo per farlo in modo nativo in Hibernate, posso creare un tipo di utente o un dialetto o qualcosa per farlo accadere?
La condivisione adattiva del cursore di 11g risolve i problemi? –
@jonearles Sì, forse 11g risolverà questi problemi tramite la condivisione adattiva del cursore e/o il feedback della cardinalità. Stiamo lavorando per ottenere 11g fino alla produzione, ma ci sono test considerevoli da fare lì. –
Per essere chiari, stai dicendo che l'eliminazione delle partizioni funziona con le variabili di binding, ma il piano di query all'interno della partizione (ad esempio, strategia di join) non lo fa? – wrschneider