Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Speicherplatz für NULL bei Oracle

Empfohlene Antworten

Weiß zufällig jmd, wieviel Bytes Oracle benötigt, um einen NULL-Wert zu speichern?

Ich weiß es ja nicht 100%ig aber ich denke mal das das keinen Platz einnimmt. Weil null ist ja nicht initialisierter Speicher und da braucht man dann auch keine Bytes für.

Es wir kein Speicher verbraucht.

Da Oracle blöckeweise schreibt, wird für das null-Attribut wenn es nicht belegt ist auch kein Speicher freigehalten.

Alledings verwendet Oracle den PCTFREE-Bereich eines Blockes bei Updates und die Werte des Null-Wertes nach dem Update einzutragen. Dies soll Rowchaining verhindern.

Chained Rows sind sehr unerwünscht, da sie Performance verbrauchen, da mehr als ein Block in den Buffer geladen werden müßen um einen Datensatz auszulesen.

Um Chained Rows zu indetifiziren kannst du das Skript ldblkchn.sql verwenden das Oracle beiliegt.

Kleiner Exkurs in DB-Administration, aber vielleicht helfen dir die Infos mal.

Grüße

Aber soweit ich weiß gibts doch nen Platzhalter, sofen NULL nicht am Satzende auftritt, sondern im weiteren Verlauf des Satzes noch Datenwerte folgen (z.B Spalte 4 NULL, , Spalte5 NULL, Spalte6 'MÜLLER').

ok, thx

Nein das ist nicht korrekt. Der Block hat sowas wie einen Header in dem er die Attribute verzeichnet. Daten werden aber nicht verzeichnet.

Du kannst die Größe eines Attribus mit select vsize(attribut) from tabelle feststellen.

Wenn du das auf einen nicht gefüllten Null-Wert machst, wirst du sehen das du nicht erhälst. auch kein 0 Bytes da der Datensatz einfach noch nicht im Block geschrieben ist.

Grüße

Original geschrieben von OracleFan

Alledings verwendet Oracle den PCTFREE-Bereich eines Blockes bei Updates und die Werte des Null-Wertes nach dem Update einzutragen. Dies soll Rowchaining verhindern.

Grüße

Beachte aber das der PCTFREE-Wert nicht davon abhängt wie viele Felder in dem Datensatz mit Null sind, sonder nur von dem Wert der für die ganze Tabelle definiert wurde. D.h. ist ein Datensatz komplett gefüllt (alle Columns haben Werte) ist der freigehaltene Platz für änderungen genauso groß wie bei einem Datensatz der gleichen Tabelle wo nur eine Column gefüllt wurde.

Habe angenommen das das klar ist. Aber du hast natürlich recht.

Grüße

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.