Jump to content

Select * from View läuft nicht durch, gezielter SELECT schnell – Ursache gesucht


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habe ein Performance-Problem mit einer View in SQL Server (Version: SQL Server 2019 Standard).

Problem: Wenn ich eine gezielte Abfrage auf den View mache, also das Select unterhalb des Alters markiere und ausführe läuft dieser in <10 Sekunden durch.

Mache ich jedoch: Select * from dbo.view läuft diese Anfrage nicht durch.
 

Ich habe schon geprüft:

  • Statistiken aktualisiert (UPDATE STATISTICS sowohl auf der View als auch auf den zugrunde liegenden Tabellen)

  • Rebuild/Reorganize der Indizes auf allen relevanten Tabellen

  • Execution Plan geprüft – die Pläne unterscheiden sich stark zwischen SELECT * und gezieltem SELECT

  • Kein Problem mit Berechtigungen oder Schemakonflikten

Details zur View:

  • Die View referenziert ca. 6 Tabellen über mehrere JOINs

  • Keine Funktionen wie TOP, ORDER BY, DISTINCT in der View

  • Die View wird nicht geschachtelt verwendet

  • In der View werden keine * verwendet – also im View-Code steht explizit jede Spalte

  •  

Ich bin mit meinem Latein am Ende, ich habe alle Tricks schon probiert, komme hier aber nicht mehr weiter. Ich bin für jede konstruktive Idee dankbar!

Danke euch!

Geschrieben (bearbeitet)

Moin,

 

willkommen an Board!

 

Ohne Informationen zu den Daten und zu der Definition der View wird es schwierig, zu deiner Frage etwas Sinnvolles zu sagen. So ist völlig schleierhaft, was

vor 14 Minuten schrieb sqlserveristmeintod:

also das Select unterhalb des Alters

heißen könnte.

 

Was heißt denn überhaupt "läuft diese Anfrage nicht durch"? Was passiert?

 

Gruß, Nils

 

bearbeitet von NilsK
Geschrieben

Verwendest Du Funktionen wie ROW_NUMBER() oder Aggregatfunktionen?

 

Vergleiche mal die Ausführungspläne. Bei Views erfolgt die Filterung erst am Schluss. Mit ROW_NUMBER() würden also alle Datensätze aufgezählt und erst danach gefiltert. Führst Du die Abfrage direkt aus, filtert der SQL Server zuerst und wendet die Funktionen erst dann an.

 

Für Deine Anforderung eignet sich allenfalls eine Tabellenwertfunktion.

  • Lian changed the title to Select * from View läuft nicht durch, gezielter SELECT schnell – Ursache gesucht

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...