Die meiste Zeit hatte Snowflake keine Indizes auf normalen Tabellen. Stattdessen setzte es auf Micro-Partitionen: kleine Tabellenblöcke, für die der kleinste und größte Wert jeder Spalte gespeichert ist, sodass eine Abfrage Blöcke überspringen kann, die die gesuchten Zeilen nicht enthalten können. Für große Analyseabfragen funktioniert das hervorragend, weniger gut, wenn Sie ein paar Zeilen zu einer Kunden-ID brauchen. Am 26. Oktober 2026 wurden Sekundärindizes für Standardtabellen allgemein verfügbar. Dieser Leitfaden erklärt, was sie sind, wie Sie einen anlegen und wann sie ihr Geld wert sind.
So funktioniert ein Sekundärindex
Ein Sekundärindex ordnet die Werte seiner Schlüsselspalten den Micro-Partitionen zu, die sie enthalten. Filtert eine Abfrage auf diese Spalten, sucht Snowflake die passenden Partitionen im Index und liest nur diese. Stehen alle Spalten, die die Abfrage braucht, im Index, kann Snowflake allein aus dem Index antworten. Snowflake baut und pflegt den Index automatisch, wenn sich Daten ändern.
Den ersten Index anlegen
Die Syntax kommt Ihnen bekannt vor, wenn Sie PostgreSQL oder SQL Server kennen. Zuerst stehen die Schlüsselspalten, nach Wichtigkeit geordnet, und INCLUDE fügt Spalten hinzu, die im Index gespeichert, aber nicht als Hauptsuchschlüssel verwendet werden.
-- Speed up lookups by customer and date, and cover the columns the app reads
CREATE INDEX idx_orders_customer
ON orders (customer_id, order_date)
INCLUDE (status, amount);
-- Queries like this can now skip most of the table
SELECT order_date, status, amount
FROM orders
WHERE customer_id = 42
AND order_date >= '2026-10-01';
-- List and remove indexes
SHOW INDEXES IN TABLE orders;
DROP INDEX orders.idx_orders_customer;Schlüssel können auch deterministische Ausdrücke sein, etwa ein Cast oder eine Spalte in Kleinbuchstaben. Schreiben Sie Ihre Filter mit demselben Ausdruck, damit der Optimizer ihn erkennt:
CREATE INDEX idx_customers_email ON customers (LOWER(email));
SELECT customer_id, name
FROM customers
WHERE LOWER(email) = 'ana@example.com';- Schlüsselausdrücke
- Eine geordnete Liste von Spalten oder deterministischen Ausdrücken. Setzen Sie die am häufigsten gefilterte Spalte an den Anfang, denn frühe Schlüssel filtern wirksamer.
- INCLUDE
- Zusätzliche Spalten im Index. Sie helfen weniger beim Filtern, erlauben dem Index aber, Ergebnisse allein zu liefern.
- Abdeckender Index
- Ein Index mit allen Spalten, die eine Abfrage braucht, sodass die Basistabelle nicht gelesen wird.
- Index ändern
- Es gibt kein ALTER INDEX. Nutzen Sie CREATE OR REPLACE INDEX oder löschen Sie den Index und legen ihn neu an.
Index, Search Optimization oder Clustering?
Snowflake hat jetzt drei Wege, Filter schneller zu machen. Sie überschneiden sich, deshalb hilft es zu wissen, wofür jeder gedacht ist.
| Sekundärindex | Search Optimization | Automatisches Clustering | |
|---|---|---|---|
| Am besten für | Gleichheit, Bereiche und IN-Listen | Gleichheit auf Spalten mit hoher Kardinalität, Text- und Geodatensuche | Bereiche auf den Spalten, nach denen die Tabelle sortiert ist |
| Schlüssel | Spalten und deterministische Ausdrücke | Spalten | Spalten und Ausdrücke |
| Antwort ohne Lesen der Tabelle | Ja, wenn er die Abfrage abdeckt | Nein | Die Tabelle selbst wird umorganisiert |
| Abgerechnet als | Search Optimization | Search Optimization | Automatisches Clustering |
- 1
Für den Hauptzugriff mit Clustering beginnen
Filtert fast jede Abfrage nach Datum, clustern Sie die Tabelle nach Datum. Ein Clustering-Schlüssel bedient das häufigste Muster.
- 2
Für den zweiten Zugriff einen Index ergänzen
Sucht eine App, eine API oder ein KI-Agent Zeilen auch nach Kunden-, Bestell- oder Geräte-ID, erspart ein Index auf dieser Spalte das Umorganisieren der ganzen Tabelle.
- 3
Search Optimization für Text und viele Spalten nutzen
Teilstringsuche, Geofilter und spontane Gleichheitsfilter über viele Spalten bleiben ihre Aufgabe.
- 4
Mit echten Abfragen testen
Vergleichen Sie Laufzeit und gelesene Partitionen im Query Profile vorher und nachher, und behalten Sie den Index nur, wenn er sich rechnet.
Grenzen, die Sie vorher kennen sollten
Funktioniert mit
Unterstützt- Standardtabellen in Snowflake, mehrere Indizes pro Tabelle
- Gleichheits-, Ungleichheits-, Bereichs- und IN-Filter
- Deterministische skalare Ausdrücke, auch Casts
Gemacht für selektive Abfragen auf großen Tabellen.
Funktioniert nicht mit
Nicht unterstützt- Apache-Iceberg-Tabellen, Views und Materialized Views
- Abfragen mit Time Travel
- Tabellen oder Spalten mit Row-Access-, Masking-, Aggregations- oder Privacy-Policies
- Replikation, vorerst
Der Optimizer nutzt höchstens einen Index pro Tabelle in einer Abfrage und kann ihn auch übergehen.
Kosten und Berechtigungen
Zum Anlegen eines Index brauchen Sie OWNERSHIP an der Tabelle und das Recht ADD SEARCH OPTIMIZATION auf ihrem Schema. Löschen darf ihn nur die Eigentümerrolle der Tabelle. Die Pflege-Credits erscheinen im Verlauf der Search Optimization, wo Sekundärindizes eigens gekennzeichnet sind:
GRANT ADD SEARCH OPTIMIZATION ON SCHEMA sales.public TO ROLE app_owner;
-- Credits spent maintaining secondary indexes in the last 30 days
SELECT table_name, SUM(credits_used) AS credits
FROM snowflake.account_usage.search_optimization_history
WHERE index_type = 'Secondary Index'
AND start_time >= DATEADD(day, -30, CURRENT_TIMESTAMP())
GROUP BY table_name
ORDER BY credits DESC;Tabellen, die sich ständig ändern, sind teurer zu indizieren, weil jede Änderung in den Index übernommen werden muss. Am meisten bringen Indizes bei großen Tabellen, die oft selektiv gelesen und in Batches aktualisiert werden.
Testen Sie Ihr Wissen
1/3Was fügt INCLUDE einem Snowflake-Sekundärindex hinzu?
Eingeschlossene Spalten machen den Index „abdeckend“, sodass die Basistabelle eventuell nicht gelesen wird.
2/3Welcher Tabellentyp kann keinen Sekundärindex haben?
Iceberg-Tabellen, Views und Materialized Views werden nicht unterstützt.
3/3Wie wird die Indexpflege abgerechnet?
Suchen Sie im Search-Optimization-Verlauf nach dem Typ Secondary Index, um die Kosten zu verfolgen.
Sie haben 0 von 3 richtig.
Mehr zu Snowflake: das Snowflake-Update Oktober 2026, die Datenplattform-News dieser Woche, der Snowflake-Spickzettel und Snowflake oder Databricks für KI-Agenten. Neu bei Snowflake? Beginnen Sie mit Erste Schritte mit Snowflake.
Quellen: Snowflakes Release Note „Secondary indexes (General availability)“ (26. Oktober 2026) und die Snowflake-Dokumentation zu Sekundärindizes, CREATE INDEX und Search Optimization. Funktionen werden je nach Region und Edition ausgerollt; prüfen Sie die Verfügbarkeit in Ihrem Konto.
