

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Identifizieren von Tabellen mit verzerrter Datenverteilung oder unsortierten Zeilen
<a name="identify-tables-with-data-skew-or-unsorted-rows"></a>

Mit der folgenden Abfrage können Sie Tabellen identifizieren, die eine ungleichmäßige („verzerrte“) Datenverteilung oder einen hohen Prozentsatz an unsortierten Zeilen aufweisen.

Ein geringer `skew`-Wert weist darauf hin, das die Tabellendaten ordnungsgemäß verteilt sind. Wenn eine Tabelle für `skew` einen Wert von 4,00 oder höher hat, sollten Sie erwägen, den Datenverteilungsstil zu ändern. Weitere Informationen finden Sie unter [Suboptimale Datenverteilung](query-performance-improvement-opportunities.md#suboptimal-data-distribution).

Wenn eine Tabelle für `pct_unsorted` einen Wert über 20 Prozent hat, sollten Sie ggf. den Befehl [VACUUM](r_VACUUM_command.md) ausführen. Weitere Informationen finden Sie unter [Unsortierte oder falsch sortierte Zeilen](query-performance-improvement-opportunities.md#unsorted-or-mis-sorted-rows).

Sie sollten auch die `mbytes`- und `pct_of_total`-Werte für jede Tabelle überprüfen. Diese Spalten geben die Größe einer Tabelle an, sowie den Prozentsatz des verfügbaren Bruttospeicherplatzes auf dem Datenträger, den die Tabelle verbraucht. Der Roh-Festplattenspeicherplatz schließt den Platz ein, der von Amazon Redshift für die interne Verwendung reserviert ist, ist also größer als die nominelle Festplattenkapazität, bei der es sich um den Festplattenspeicherplatz handelt, der dem Benutzer zur Verfügung steht. Verwenden Sie diese Informationen, um zu verifizieren, dass der verfügbare Speicherplatz auf dem Datenträger mindestens um den Faktor 2,5 größer ist als Ihre größte Tabelle. Dieser verfügbare Speicherplatz reicht dafür aus, dass das System bei der Verarbeitung von komplexen Abfragen Zwischenergebnisse auf den Datenträger schreiben kann. 

```
select trim(pgn.nspname) as schema, 
trim(a.name) as table, id as tableid, 
decode(pgc.reldiststyle,0, 'even',1,det.distkey ,8,'all') as distkey, dist_ratio.ratio::decimal(10,4) as skew, 
det.head_sort as "sortkey", 
det.n_sortkeys as "#sks", b.mbytes,  
decode(b.mbytes,0,0,((b.mbytes/part.total::decimal)*100)::decimal(5,2)) as pct_of_total, 
decode(det.max_enc,0,'n','y') as enc, a.rows, 
decode( det.n_sortkeys, 0, null, a.unsorted_rows ) as unsorted_rows , 
decode( det.n_sortkeys, 0, null, decode( a.rows,0,0, (a.unsorted_rows::decimal(32)/a.rows)*100) )::decimal(5,2) as pct_unsorted 
from (select db_id, id, name, sum(rows) as rows, 
sum(rows)-sum(sorted_rows) as unsorted_rows 
from stv_tbl_perm a 
group by db_id, id, name) as a 
join pg_class as pgc on pgc.oid = a.id
join pg_namespace as pgn on pgn.oid = pgc.relnamespace
left outer join (select tbl, count(*) as mbytes 
from stv_blocklist group by tbl) b on a.id=b.tbl
inner join (select attrelid, 
min(case attisdistkey when 't' then attname else null end) as "distkey",
min(case attsortkeyord when 1 then attname  else null end ) as head_sort , 
max(attsortkeyord) as n_sortkeys, 
max(attencodingtype) as max_enc 
from pg_attribute group by 1) as det 
on det.attrelid = a.id
inner join ( select tbl, max(mbytes)::decimal(32)/min(mbytes) as ratio 
from (select tbl, trim(name) as name, slice, count(*) as mbytes
from svv_diskusage group by tbl, name, slice ) 
group by tbl, name ) as dist_ratio on a.id = dist_ratio.tbl
join ( select sum(capacity) as  total
from stv_partitions where part_begin=0 ) as part on 1=1
where mbytes is not null 
order by  mbytes desc;
```