2008-08-31 11 views
2

Wann und wie sollte Tabelle Stats sammeln für Oracle, Version 9 und höher durchgeführt werden? Wie würdest du Statistiken für eine große Datenbank sammeln, in der das Sammeln von Statistiken mit "Geschäftszeiten" kollidieren würde?Tabelle Stats sammeln für Oracle

Antwort

1

Die Erfassung von Statistiken sollte immer dann erfolgen, wenn sich der Dateninhalt stark geändert hat, z. B. eine große Anzahl von Löschungen oder Einfügungen. Wenn sich die Tabellenstruktur geändert hat, sollten Sie auch Statistiken sammeln. Es ist ratsam, die Option 'ESTIMATE' zu verwenden.

Tun Sie dies als einen automatisierten Prozess außerhalb der Geschäftszeiten, wenn möglich, oder wenn Sie es während der Geschäftszeiten tun müssen, wählen Sie dann einen Zeitpunkt, zu dem Sie nur minimalen Zugriff auf die Tabellen haben, für die Sie Statistiken sammeln möchten.

+1

Ich würde nicht damit einverstanden sein, geschätzte Statistiken zu verwenden. In meiner (wenn auch begrenzten) Erfahrung, wo es um Tabellenstatistiken geht, ist "geschätzt" gleichbedeutend mit "bedeutungslos". – ninesided

0

Vergewissern Sie sich bei Verwendung der Schätzung (sample_percent), dass Sie mindestens 10 Prozent sammeln. Darunter kann sehr fragwürdige Ergebnisse ergeben.

0

In Betracht ziehen, aktuelle Statistiken beim Sammeln zu sichern - auf diese Weise können Sie sie vergleichen (wenn Sie daran interessiert sind) und sie möglicherweise wiederherstellen, wenn Ihre neuen Statistiken Probleme verursachen. Denken Sie daran, dass Statistiken verwendet werden, um Ausführungspläne zu bestimmen - Sie können sie nur sammeln, wenn Sie Ausführungspläne ändern möchten.

4

Ich stimme nicht zu, dass Sie Ihre Statistiken immer neu erstellen sollten, nachdem viele Löschungen oder Einfügungen stattgefunden haben. Wie immer, es kommt darauf an. In einer Data-Warehouse-Situation werden Sie bei der Neuerstellung Ihrer materialisierten Ansichten viele Lösch- und Einfügevorgänge durchführen, aber die Basisstruktur der Daten ändert sich nicht.

Sie müssen nur Statistiken für eine Tabelle neu berechnen, wenn eine signifikante Änderung in ihrem Inhalt stattgefunden hat. Dies bedeutet nicht notwendigerweise nach vielen Löschungen oder Einfügungen, sondern eher, wenn Löschungen, Einfügungen oder Updates den Inhalt in Bezug auf mögliche Ausführungspläne wesentlich ändern.

Wenn Sie Tabellen abschneiden und neu erstellen (wodurch Ihre Statistiken zurückgesetzt werden), speichern Sie die Statistiken häufig besser ab, anstatt sie abzukürzen und wiederherzustellen, nachdem Sie die Tabelle neu erstellt haben.

Für die gegenwärtigen Ansichten von Statistiken Speichern Sie verwenden:

dbms_stats.export_table_stats 

und sie wiederherzustellen danach Sie verwenden: (. Es sind entsprechende Verfahren für schema und database)

dbms_stats.import_table_stats