Comment créer un index pendant que des données sont enregistrées/supprimées
Il est possible de construire (reconstruire) l'index pendant que des données sont enregistrées/supprimées, mais si vous construisez l'index pendant ce processus, il sera référencé pendant sa mise à jour, utilisez donc l'utilitaire dédié et procédez à la construction de l'index.
La procédure est la suivante.
- Masquez le nom d'index que vous prévoyez d'ajouter l'optimiseur de requête.
- Ajoutez la définition de l'index et effectuez la construction de l'index.
- Une fois la construction de l'index est terminée, publiez l'index ajouté dans l'optimiseur.
L'exemple d'exécution est le suivant.
* Dans l'exemple, l'index standard HomeStateIdx est défini pour la colonne Home_State (informations d'état de l'adresse de contact) de Sample.Person.
1
2.Après avoir ajouté la définition d'index, reconstruisez-la.
Exemple de définition: Index HomeStateIdx On Home.State;
3. Une fois la construction de l'index est terminée, publiez l'index ajouté dans l'optimiseur.
1
Reportez-vous au plan de requête pour voir si l'index a été utilisé/non utilisé.
Dans l'exemple suivant, le résultat de la confirmation du plan avec le terminal basculé sur l'environnement d'exécution SQL avec $system.SQL.Shell() s'affiche (lors du référencement dans le Management Portal, après avoir exécuté SQL sur l'écran d'exécution de la requête, cliquez sur le bouton "Affichage du plan").
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select ID,Name from Sample.Person where Home_State='NY'
1. select ID,Name from Sample.Person where Home_State='NY'
ID Name
61 Alton,Debby O.
138 Isaksen,Charlotte L.
175 Walker,Emily O.
3 Rows(s) Affected
statement prepare time(s)/globals/lines/disk: 0.0026s/35/974/0ms
execute time(s)/globals/lines/disk: 0.0017s/216/2447/0ms
cached query class: %sqlcq.SAMPLES.cls1
---------------------------------------------------------------------------
SAMPLES>>show plan // ★ Affichage du plan lorsque l'index n'est pas utilisé DECLARE QRS CURSOR FOR SELECT ID , Name FROM Sample . Person WHERE Home_State = ?
Read master map Sample.Person.IDKEY, looping on ID.
For each row:
Output the row.
SAMPLES>>show plan // ★ Affichage du plan lors de l'utilisation de l'index DECLARE QRS CURSOR FOR SELECT ID , Name FROM Sample . Person WHERE Home_State = ?
Read index map Sample.Person.HomeStateIdx, using the given %SQLUPPER(Home_State), and looping on ID.
For each row:
Read master map Sample.Person.IDKEY, using the given idkey value.
Output the row.
SAMPLES>>
Pour plus de détails, veuillez consulter les documents suivants.
Building Indices on a READ and WRITE Active System【IRIS】