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
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.
Vergewissern Sie sich bei Verwendung der Schätzung (sample_percent), dass Sie mindestens 10 Prozent sammeln. Darunter kann sehr fragwürdige Ergebnisse ergeben.
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.
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
- 1. Generiere C# -Code für Oracle-Tabelle
- 2. Sammeln mysql Abfrage-Ergebnis aus der Tabelle
- 3. Oracle globale temporäre Tabelle
- 4. General Oracle Ergebnisse Tabelle
- 5. Speichern von Schlüsselwertpaaren in SQL/Stats Aggregator
- 6. CS: GO player stats
- 7. elasticsearch cluster stats Indizierung
- 8. Solr Stats on Tuple
- 9. Directory Stats Befehlszeilenschnittstelle?
- 10. Tabelle "Diff" in Oracle
- 11. Unpivot Tabelle SQL Oracle
- 12. Oracle: transponieren Tabelle
- 13. Anruf für eine Karte sammeln?
- 14. math stats mit Linq
- 15. Paket Stats in Android
- 16. HAProxy Access Stats remote
- 17. NBA player stats
- 18. Nicht gemeldete Tabelle in Oracle
- 19. SonarQube 5.4 SCM Stats Plugin?
- 20. Live American Football Stats API
- 21. analysieren Log-Tabelle - Oracle 11g
- 22. Neue Facebook Pixel Stats lesen
- 23. Scipy Stats rv_continuous ohne Normalisierungskonstante
- 24. Zeile in Tabelle einfügen - oracle
- 25. Mehrere Tabelle Update in Oracle
- 26. Oracle Tabelle mit Spaltenkommentaren erstellen
- 27. Flashback-Tabelle in Oracle 10g
- 28. Nachschlagetabelle für oracle decodiert?
- 29. Getting Performance Stats aus JOGL
- 30. Sammeln heterogener Daten mit hadoop
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