Hallo!
Ich versuche folgenden SQL auszuführen, erfolglos!
Zunächst ist Zeile 1 angemeckert! Lasse ich Zeile 1 (und auch 2) weg, wird immer noch über Zeile 1 gemeckert (also die ursprünglich dritte Line). Komischerweise werden aber Zeile 1 und auch 2, alleine für sich eingegeben, ausgeführt! Warum??
SQL*Plus: Release 9.2.0.1.0 - Production on Do Jul 15 15:32:25 2004
Tippfehler
Hallo Markus
Von SQL *Plus hab ich keine Ahnung, aber ich wuerde mal sagen dass in deiner ersten Zeile ein Tippfehler drin ist ?
Da sollte vermutlich „clear computers“ stehen ???
Weiss ja nicht ob du’s hier extra nochmal getippt hast oder aus der Oracle Eingabe rueberkopiert hast.
Gruss Claudia
Hallo Markus
Da hast du ein feines script geschrieben.
Mit semikolon vor dem 2. clear computes, wie Peter schon schreibt, gehts auch im script, dann eben nicht nur interaktiv.
Gruss Ulrich
Ich will ja nicht meckern, aber so wahrlich begeistert bin ich von dem Skript (abgesehen von den Multifile-Tablespaces) nicht. Es erweckt nämlich den Eindruck, dass der in „bytes free“ angezeigte Wert für ein neues Segment zur Verfügung stehen würde - tut er aber nicht, weil dafür auch die Fragmentierung des Files entscheidend ist. Sprich: Es kann durchaus vorkommen (wenn auch selten) dass in einem Datenfile noch 200 MB frei sind, und ich trotzdem kein Segment (oder auch nur einen zusätzlichen Extent für ein bestehendes Segment) mit 2 MB anlegen kann.
Ich werde mal in meiner Sammlung kramen, da müsste sich doch noch was finden, was ich für den Zweck für besser geeignet halte.
Gruß
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Script für den freien Platz in allen Tablesp
Hallo Martin
Ich werde mal in meiner Sammlung kramen, da müsste sich doch
noch was finden, was ich für den Zweck für besser geeignet
halte.
Da isses:
select a.tablespace\_name,
to\_char(round(a.sumfilesize/(1024\*1024),1))||' MB' OverallSize,
to\_char(round(nvl(b.maxfree,0)/(1024\*1024),1))||' MB' MaxFreeExtent,
to\_char(round(nvl(b.overallfree,0)/(1024\*1024),1))||' MB' OverallFree,
to\_char(round((nvl(a.sumfilesize-b.overallfree,0))/(1024\*1024),1))||' MB' OverallUsed
from (select tablespace\_name, sum(bytes) sumfilesize
from dba\_data\_files
group by tablespace\_name) a,
(select tablespace\_name, max(bytes) maxfree, sum(bytes) overallfree
from dba\_free\_space
group by tablespace\_name) b
where a.tablespace\_name(+)=b.tablespace\_name;
So’n Gemecker lass ich mir jederzeit gefallen.
Ich hab das Script in der Art auch noch an einigen anderen Orten gesichtet, so neu scheint es also nicht zu sein.
Meine Lieblings DB ist eben ein biss’l gross, ich hab die 150 GB in Data und index tbs mit je 3 verschiedenen extent sizes untergebracht. Damit ich sie auch auf alten Arrays unterbringen kann, hab ich sie in 2GB datafiles gestückelt. Da ist ein Ueberblick via script nicht so einfach zu schaffen. Ich muss gestehen, ich verschaff ihn mir meist über den OEM.
Danke und Gruss
Ulrich