2017-07-25 3 views
2

J'ai une table partitionnée (MYTABLE) sur Oracle (11g). Il s'agit d'une table assez grande, partitionnée par la colonne INSERT_DATE (sans temps).Oracle Partitioned Table - Comment compter

Le problème est que, Count (*) donne un résultat incorrect.

La requête ci-dessous les rendements: 5.726.829.673

SELECT count(*) FROM MYTABLE WHERE INSERT_DATE >= TO_DATE('01/01/2015', 'DD/MM/YYYY') 

La requête ci-dessous les rendements: 13.076.228.720

SELECT SUM(1) FROM MYTABLE WHERE INSERT_DATE >= TO_DATE('01/01/2015', 'DD/MM/YYYY') 

Comment peut-il être possible? Quelle est la raison de cette différence?

+0

Je pourrais avoir une idée. Quelle est votre version exacte de 11g? 'SELECT * FROM V $ VERSION' –

+0

C'est une machine Exadata. Les détails sont les suivants: Oracle Database 11g Édition Entreprise version 11.2.0.4.0 - 64bit Production PL/SQL version 11.2.0.4.0 - Production CORE \t 11.2.0.4.0 \t Production TNS pour Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production –

+2

ok même ici. Je pensais que vous aviez rencontré le [Bug 9857247 Mauvais résultats pour count (*) avec groupe par emplacement] (https://support.oracle.com/rs?type=bug&id=9857247) affectant les versions _11.2.0.1_ et _11 .2.0.2_ mais ce n'est pas le cas car il a été corrigé dans _11.2.0.3_. C'est bizarre, se demandant si quelqu'un comme une explication ... –

Répondre

0
select count(1) from username.tablename