J'ai une table vraiment énorme, avec ~ 200 millions de lignes. Il n'y avait pas d'index/pk du tout. Les sélections dans cette table étaient (évidemment) exécutées lentement. J'ai décidé de créer un PK en utilisant 3 colonnes. Je l'ai fait dans un environnement de test qui a une version plus petite de cette table et cela a fonctionné comme un charme.La création d'index/pk dans une table volumineuse prend trop de temps. J'utilise Oracle. Comment savoir si ça va bien?
Alors, avant de rentrer chez je l'ai fait une ALTER TABLE HUGETABLE ADD CONTRAINTE PK_HUGETABLE PRIMARY KEY (ID1, ID2, ID3);
Je m'attendais à ce que ça marche pendant la nuit, mais ça fait déjà plus de 24 heures et ça fonctionne encore. Je sais si j'avais gardé l'identifiant de session avant de commencer ma requête, je serais capable de le suivre à V $ SESSION_LONGOPS. Mais je ne l'ai pas fait.
Existe-t-il un moyen de vérifier le fonctionnement de ma requête ou le temps qu'il faudra encore?
Je ne pouvais pas le trouver. J'ai trouvé beaucoup de processus en cours, mais je ne pouvais pas identifier le mien. J'ai donc abandonné et l'ai annulé :) Je vais tout arrêter pendant le week-end et essayer à nouveau. Cette fois, je vais obtenir l'identifiant de session avant de commencer le travail. Merci quand même. – Michael
La prochaine fois, définissez l'index avec PARALLEL n, où n est un certain degré de parallélisme acceptable sur votre système. Lorsque vous avez terminé, modifiez l'index en NOPARALLEL. En outre, si vous n'utilisez pas Data Guard et pouvez effectuer une sauvegarde de la base de données lorsque vous avez terminé, utilisez la clause NOLOGGING. –