2009-05-28 7 views
3

Ich benutze Oracle schon seit einiger Zeit, seit Oracle 8i veröffentlicht wurde. Ich war zu dieser Zeit neu in der Datenbank und wurde beigebracht, dass es am besten ist, Größengrößen bei der Definition von Tablespaces zu verwenden.Wird empfohlen, in Oracle-Tabellenbereichen einheitliche Extent-Größen zu verwenden?

Von dem, was ich gelesen habe, scheint es, dass Oracle heute mit 10/11g automatisch diese Extent-Größen für Sie verwalten kann und die Extent-Größen möglicherweise nicht konstant halten. Ich kann leicht sehen, wie dies Speicherplatz effizienter nutzen kann, aber sind ihre Schattenseiten dazu. Ich denke, es könnte Zeit sein, die Vergangenheit loszulassen. (Angenommen, mein früherer Unterricht war von Anfang an richtig)

Antwort

7

Ja, abgesehen von sehr ungewöhnlichen Fällen ist es an der Zeit, die Vergangenheit loszulassen und die neuen Oracle Extent-Verwaltungsfunktionen zu verwenden. Verwenden Sie lokal verwaltete Tablespaces (LMTs) und die automatische Größenanpassung, und Sie müssen nicht mehr über diese Dinge nachdenken.

Als DBA beunruhigte mich zunächst die variable Größenbestimmung, da ich in den 7,3 Tagen viel Zeit damit verbrachte, Tablespaces neu zu organisieren, um die Fragmentierung zu eliminieren, die sich aus der Bereichszuweisung mit nicht null Prozent ergeben hat. (Sie benötigten nicht null Prozent, da die maximale Anzahl an Extents abhängig von der beim Erstellen der Datenbank verwendeten Datenbankblockgröße auf unterschiedlichen Ebenen begrenzt war.) Oracle verwendet jedoch einen Algorithmus, um die Rate und Größe der Extentgröße zu bestimmen beseitigt effektiv Fragmentierung.

Vergessen Sie auch nichts, was Sie darüber gehört haben, wie die optimale Konfiguration ist, eine Tabelle oder einen Index in einen einzigen Bereich passen zu lassen, oder dass Sie i/o durch Extent-Konfiguration irgendwie verwalten können - das war nie wahr.In den Tagen des vom Dictionary verwalteten Tabellenbereichs gab es wahrscheinlich einige Nachteile, wenn Tausende von Extents in einer Dictionary-Tabelle verwaltet wurden, aber LMT verwendet Bitmaps und dies ist kein Problem. Oracle puffert Blöcke, keine Segmentbereiche.

3

Wenn Sie unbegrenzten Speicherplatz mit sofortiger Zugriffszeit haben, müssen Sie sich überhaupt nicht um Extents kümmern.

Sie machen nur jede Tabelle INITIAL 100T NEXT 100T MAXEXTENTS UNLIMITED PCTINCREASE 0 und vergessen Sie über Extents für die nächsten 300 Jahre. Die Probleme treten auf, wenn der Speicherplatz nicht unbegrenzt ist oder Zugriffszeit variiert.

Extents sind dafür gedacht, mit der Datenspärlichkeit umzugehen: Wenn Ihre Daten fragmentiert sind, haben Sie Ihre HDD Kopf, um von einem Ort zum anderen zu springen, was Zeit braucht.

Die ideale Situation besteht darin, dass alle Ihre Daten für jede Tabelle in einem Bereich liegen, während die Daten für die Tabelle, mit der Sie am häufigsten beitreten, im nächsten Extent gespeichert sind.

Beachten Sie, dass die Zugriffszeit auch die Zugriffszeit umfasst, die benötigt wird, um herauszufinden, wo sich die Daten befinden. Wenn Ihre Daten extrem spärlich sind, sind zusätzliche Suchvorgänge in den Extent-Wörterbüchern erforderlich.

Heutzutage spielt Speicherplatz keine Rolle mehr, während die Zugriffszeit immer noch zählt.

Deshalb wurde Oracle Umfangserweiterung erstellt.

Dies ist weniger effizient in Bezug auf den verwendeten Platz als das manuelle Extend-Layout, aber effizienter in Bezug auf die Zugriffszeit.

Wenn Sie also genügend Speicherplatz haben (d. H. Ihre Datenbank benötigt weniger als die Hälfte der Festplatte für 5 Jahre), dann verwenden Sie einfach automatische Extents.

+0

„Die ideale Situation alle Ihre Daten mit für jede Tabelle in einem Ausmaß wohnen, während die Daten für die Tabelle mit Ihnen am häufigsten kommen im nächsten Ausmaß aufzuhalten, so kann alles der Reihe nach gelesen werden.“ Warum? OLTP-Apps werden nicht viel Scan-Tabellen viel (und Cluster wäre dort besser geeignet). Große DW-Abfragen verwenden parallele Scans, Hash-Joins und temporäre Tablespaces. Extents gibt es so müssen Sie nicht Ihre Tischgröße an einem Tag vordefinieren, aber sie haben nicht ständig die Größe von Bits und Bytes schleichend. –

+0

@Gary: Wenn die Festplatte sucht sofort, wäre es nichts Böses in Bits und Bytes, aber sie sind nicht. Deshalb ist es besser, Daten zusammenzuhalten. Cluster sind eine der Möglichkeiten, dies zu tun (aber sie sind nur gut, wenn alle Daten eines Clusterschlüssels in eine Datenseite passen). – Quassnoi

Verwandte Themen