AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sortierung funktioniert nicht bei Views in Sql Srv 2005
Thema durchsuchen
Ansicht
Themen-Optionen

Sortierung funktioniert nicht bei Views in Sql Srv 2005

Ein Thema von etom291272 · begonnen am 4. Dez 2006 · letzter Beitrag vom 4. Dez 2006
Antwort Antwort
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#1

Sortierung funktioniert nicht bei Views in Sql Srv 2005

  Alt 4. Dez 2006, 18:15
Datenbank: SQL Server 2005 • Zugriff über: ADO
Hallo zusammen

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.

Beispiel:
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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005

  Alt 4. Dez 2006, 18:40
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005

  Alt 4. Dez 2006, 18:41
Wenn du alles datensätze willst kannst du doch eigentlich auf das TOP verzichten.
Markus Kinzler
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#4

Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005

  Alt 4. Dez 2006, 18:47
@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.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005

  Alt 4. Dez 2006, 18:56
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
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Sortierung funktioniert nicht bei Views in Sql Srv 2005

  Alt 4. Dez 2006, 19:43
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz