Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Systemobjekte » Systemprozeduren » Alphabetische Liste der Systemprozeduren

 

sa_column_stats-Systemprozedur

Gibt verschiedene Statistiken über die angegebene(n) Spalte(n) zurück. Diese Statistiken hängen nicht mit den Spaltenstatistiken zusammen, die für die Verwendung durch den Optimierer geführt werden.

Syntax
sa_column_stats ( 
[ Tabellenname ][ ,Spaltenname ]
[, Tabelleneigentümer ]
[, Max_Zeilen ] )
Argumente
  • Tabellenname   Dieser optionale CHAR(128)-Parameter gibt den Eigentümer der Tabelle an. Wenn dieser Parameter nicht angegeben ist, werden Statistiken für alle Spalten in allen Tabellen erstellt.

  • Spaltenname   Dieser optionale CHAR(128)-Parameter gibt die Spalten an, für die Statistiken erstellt werden sollen. Wenn dieser Parameter nicht angegeben ist, werden Statistiken für alle Spalten in der/den angegebenen Tabelle(n) erstellt.

  • Tabelleneigentümer   Dieser optionale CHAR(128)-Parameter gibt den Eigentümer der Tabelle an. Wenn dieser Parameter nicht angegeben wird, verwendet der Datenbankserver den Eigentümer der ersten Tabelle, die dem angegebenen Tabellennamen entspricht.

  • Max_Zeilen   Dieser optionale INTEGER-Parameter gibt die Anzahl der Zeilen an, die für die Berechnung herangezogen werden. Wenn dieser Parameter nicht angegeben ist, werden standardmäßig 1000 Zeilen genommen. Die Angabe von 0 teilt dem Datenbankserver mit, das Ergebnis basierend auf allen Zeilen in der Tabelle zu berechnen.

Ergebnismenge

Mit der Ausnahme von table_owner, table_name und column_name sind bei Nicht-Zeichenfolgenspalten alle Werte in der Ergebnismenge NULL. Auch sind bei leeren Tabellen num_rows_processed und num_values_compressed 0, während alle anderen Werte NULL sind.

Spaltenname Datentyp Beschreibung
table_owner CHAR(128) Eigentümer der Tabelle
table_name CHAR(128) Der Tabellenname
column_name CHAR(128) Der Spaltenname.
num_rows_processed INTEGER Die Gesamtanzahl der Zeilen, die zum Berechnen der Statistiken gelesen werden
num_values_compressed INTEGER Die Anzahl der Werte in der Spalte, die komprimiert sind. Wenn die Spalte nicht komprimiert ist, ist der Wert "0".
avg_compression_ratio DOUBLE Das durchschnittliche Komprimierungsverhältnis, ausgedrückt als prozentuale Größenverminderung, von komprimierten Werten in der Spalte. Wenn die Spalte nicht komprimiert ist, ist der Wert "0".
avg_length DOUBLE Die durchschnittliche Länge aller Nicht-NULL-Zeichenfolgen in der Spalte
stddev_length DOUBLE Die Längen-Standardabweichung aller Nicht-NULL-Zeichenfolgen in der Spalte
min_length INTEGER Die minimale Länge von Nicht-NULL-Zeichenfolgen in der Spalte
max_length INTEGER Die maximale Länge von Zeichenfolgen in der Spalte
avg_uncompressed_length DOUBLE Die durchschnittliche Länge aller unkomprimierten Nicht-NULL-Zeichenfolgen in der Spalte
stddev_uncompressed_length DOUBLE Die Längen-Standardabweichung aller unkomprimierten Nicht-NULL-Zeichenfolgen in der Spalte
min_uncompressed_length INTEGER Die minimale Länge aller unkomprimierten Nicht-NULL-Zeichenfolgen in der Spalte
max_uncompressed_length INTEGER Die maximale Länge aller unkomprimierten Nicht-NULL-Zeichenfolgen in der Spalte
Bemerkungen

Der Datenbankserver bestimmt die Spalten, die dem Eigentümer-, Tabellen- und Spaltennamen entsprechen, und berechnet Statistiken für die Daten in jeder angegebenen Spalte. Standardmäßig verwendet der Datenbankserver nur die ersten 1000 Datenzeilen.

Bei avg_compression_ratio dürfen Werte nicht größer oder gleich 100 sein. Sie können jedoch kleiner als 0 sein, wenn unkomprimierbare Daten (z.B. bereits komprimierte Daten) in eine komprimierte Spalte eingefügt werden. Höhere Werte zeigen eine bessere Komprimierung an. Wenn die zurückgegebene Zahl z.B 80 ist, ist die Größe der komprimierten Daten um 80 % geringer als die der unkomprimierten Daten.

Berechtigungen

DBA-Berechtigung erforderlich

Nebenwirkungen

Keine

Siehe auch
Beispiel

In diesem Beispiel verwenden Sie die Systemprozedur sa_column_stats in einer SELECT-Anweisung, um zu bestimmen, welche Spalten in der Datenbank am meisten von der Spaltenkomprimierung profitieren:

SELECT * FROM sa_column_stats() 
  WHERE num_values_compressed > 0 
  ORDER BY avg_compression_ratio desc;

In diesem Beispiel begrenzen Sie Ihre Auswahl aus dem vorherigen Beispiel auf Tabellen, die 'bsmith' gehören:

SELECT * FROM sa_column_stats( tab_owner='bsmith' ) 
  WHERE num_values_compressed > 0 
  ORDER BY avg_compression_ratio desc;