Oracle count (*) est de prendre trop de temps

J'ai essayé de récupérer le count(*) de la table, qui a près de 7 millions de disques et de prendre plus d'une heure pour retourner le résultat.

Aussi le tableau a 153 les colonnes de l'index a été créé pour la colonne 123, ainsi essayé d'exécuter la requête suivante en parallèle, mais il n'a pas aidé.

select /*+ parallel (5) */ count(123) from <table_name>

Veuillez indiquer s'il y est de solution alternative.

Quand j'ai couru desc sur la table en Crapaud, l'onglet index contient la valeur de pas de. de lignes. Aucune idée de la façon dont cette valeur est se jour là?

  • je suppose par count(123) vous dire count(column_123), droit?
  • select /*+ parallel (5) */ count(123) from Je pense que vous avez la requête.
  • Avez-vous vu ceci : stackoverflow.com/questions/1840538/... ?
  • oui Bohemain...sa colonne no. # 123
  • Grâce Shinosha, je crois que ce serait faire le travail pour moi..SÉLECTIONNEZ NUM_ROWS DE ALL_TABLES OÙ TABLE_NAME = table_name; ...une idée de la fréquence à laquelle le comte est d'obtenir des mises à jour dans le tableau all_tables.
  • Cela dépend de votre environnement @Brabin voir stackoverflow.com/questions/14125731/...
  • qu'est-ce que la pratique de la tâche d'effectuer des Comptages réguliers sur un 7M lignes de la table?
  • Plus d'une heure pour 7 millions d'enregistrements est vraiment trop long. Pourriez-vous nous montrer le plan d'exécution pour l'instruction select (exécuter une explain plan for select ..... from <table_name>, puis un select * from table(dbms_xplan.display)). Mon hypothèse est que votre 123-colonnes autorise les valeurs null (si l'index n'est pas utilisable pour le comptage) et que le tableau lui-même occupe de façon de plus d'espace que ce qui serait nécessaire, car une énorme quantité de données a été supprimée)
  • Il ne sonne comme trop long, mais à savoir si c'EST trop long (c'est à dire que quelque chose est faux) on a besoin de savoir si c'est un ordinateur dédié ou un serveur cloud avec plusieurs locataires, si il y a d'autres processus en cours d'exécution simultanément qui sont consommatrices de ressources de disque, etc.
  • Avez-vous vraiment l'une colonne appelée "123" ou avez-vous changé le nom pour l'amour de soi? 153 les colonnes ne sembler beaucoup.

InformationsquelleAutor Brabin | 2013-06-24