banche dati con gli indici flessibili?
-
02-10-2019 - |
Domanda
modulo di wikipedia: http://en.wikipedia.org/wiki/Index_ ( database)
Alcuni database estendono la potenza di indicizzazione, consentendo indici da creare sulle funzioni o espressioni. Per esempio, un indice può essere creato sulla tomaia (cognome), che memorizzare solo le versioni maiuscole del campo cognome nell'indice. Un'altra opzione a volte supportato è l'uso di indici "filtrati", dove vengono create le voci di indice solo per i record che soddisfano una certa espressione condizionale. Un ulteriore aspetto della flessibilità è consentire l'indicizzazione su funzioni definite dall'utente, così come espressioni formate da un assortimento di funzioni built-in.
che cosa sono quei database che supportano gli indici flessibili che possono essere:
- Nella colonna calcolata come: (col1 col2 +) * 100
- indici filtrati.
- indicizzazione sulle funzioni definite dall'utente.
e ciò che è la terminologia noto per questa funzione?
Soluzione
In Oracle sono chiamati indici di funzionalità base.
per il filtraggio si può essere difficile e creare una funzione che restituisce il valore se le corrispondenze con i filtri o null se non è così. Valori nulli non vengono memorizzati in indici btree così l'indice è sostanzialmente filtrata. Devi solo fare in modo di utilizzare la stessa funzione nelle query.
Io credo in sql server è possibile creare una colonna calcolata e indice che.
Altri suggerimenti
SQL Server 2000 e successivi (almeno) supporta indici su colonne basati su funzioni e colonne calcolate. Indici su funzioni possono essere replicati utilizzando viste indicizzate sulle funzioni.
Ci sono condizioni come sempre, ma soprattutto in tutto il determinismo (che è probabilmente universale)
SQL Server 2008+ ha filtrato indici.
Per quanto ne sappia, non v'è alcun termine speciale. Stanno solo indici.
Per quanto ne so, tutti i principali RDBSs supportano questa caratteristica. Ho personalmente usato su MySQL e PostgreSQL, ma sarei scioccato se non fosse disponibile in MSSQL e Oracle.
Purtroppo, non so qualsiasi termine speciale per questo.