![]() |
Datenbank: SQL Server 2005 • Zugriff über: ADO
Sortierung funktioniert nicht bei Views in Sql Srv 2005
Hallo zusammen :dp:
Ich portiere gerade eine meiner Anwendungen von Sql Server 2000 auf Sql Server 2005. Nach der übernahme der Datenbank habe ich bemerkt daß meine Frontend Applikation die Datensätze teilweise in der falschen Reihenfolge anzeigt. Habe schon ein wenig gestöbert. Offenbar funktioniert beim SqlSrv 05 die Sortierung nicht mehr, die fix in die Views gespeichert ist. :wall: Beispiel: :arrow: SELECT TOP (100) PERCENT COUNT(dbo.viBestandVorrat.dkDokGruppe) AS AnzGruppe, dbo.viBestandVorrat.dkDokGruppe, dbo.dokumentgruppen.dgBezeichnung FROM dbo.viBestandVorrat INNER JOIN dbo.dokumentgruppen ON dbo.viBestandVorrat.dkDokGruppe = dbo.dokumentgruppen.dgId GROUP BY dbo.viBestandVorrat.dkDokGruppe, dbo.dokumentgruppen.dgBezeichnung ORDER BY dbo.viBestandVorrat.dkDokGruppe wenn ich dann aus delphi mit select * from viNavBestandVorrat auf diese View zugreife ignoriert er vollständig die order by Anweisung. :!: Ich habe in einem anderen Forum erfahren daß ein ändern von TOP (100) PERCENT auf TOP 10000000 wieder die gewünschte Sortierung ermöglicht aber das ist sehr unschön. :| Auch habe ich gelsesen daß man ohnehin keine fixen sortierungen in Views definieren sollte und anstelle dessen bei dem select auf die view das order einbauen sollte. Ich möchte aber ungern meine ganze Anwendung anpassen. :( Hat jemand das selbe Problem oder eine Lösung gefunden ich habe schon einige Beiträge im Inet gefunden die das gleiche Problem haben. :wiejetzt: |
Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005
Hi,
kann es sein, dass du mit "TOP 100 PERCENT" den SQL Server 2000 überlisten wolltest um deine Sortierung in der View zu hinterlegen? Das rächt sich jetzt, da vermutlich der SQL Server 2005 diesen Quantifier als überflüssig erkennt und eliminiert hat - und somit die ORDER BY Klausel abweist. Ist es wirklich so viel Arbeit die ORDER BY Klausel in die SELECT Statements deines Programms zu verlagern? Grüße vom marabu |
Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005
Wenn du alles datensätze willst kannst du doch eigentlich auf das TOP verzichten.
|
Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005
@marabu
aus deinem beitrag schließe ich daß es unschön ist mit fixen sorts in views zu arbeiten richtig ? ich werde dann wohl daß in der Anwendung anpassen müssen. bringt diese Änderung Performancegewinn oder wo liegt der unterschied daß sort direkt in der view zu haben oder erst im eigentlichen sql statement der direkt mit der view arbeitet. |
Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005
Unschön ist vielleicht nicht das richtige Wort - es ist schlicht unzulässig. Nur der TOP Quantifier macht es notwendig die ORDER BY Klausel überhaupt zuzulassen.
Ich finde es auch viel effizienter, wenn die Sortierung im "letzten" SELECT-Statement hergestellt wird. Dein SELECT FROM SomeView könnte ja die fixe Sortierung ganz oder teilweise wieder aufheben. Freundliche Grüße |
Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005
Ich persönlich empfinde es als blasphemisch, einen SQL-Server mit schnöden Sortierungen zu belasten. Dazu ist die Client-Applikation da.
Ich verwende Datagrids, die die Daten ohnehin per Header-Click sortieren, filtrieren und sonstwas damit anstellen, insofern ist Sortieren (in meinen Applikationen) wirklich keine gute Idee. Im Ernst: Wenn man nicht mit Hilfe eines Clustered Index sortiert, kostet so eine Operation doch ganz schön Performance, vor allen Dingen, wenn die View/Tabelle ziemlich groß ist. Meine persönliche Vorliebe ist die, den SQL-Server die Daten so schnell wie möglich abliefern zu lassen: Sortieren kann ja, wie schon erwähnt, der Client. Weiterhin müssen alle Daten ja im Sortierfall (Ausnahme: Clustered Index) gepuffert werden, und das widerspricht meiner Prämisse. Aber: Jedem das Seine. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz