215 messaggi dal 07 settembre 2005
Salve,
Ho provato la versione developer di SQL Server 2005.
Ho "Attaccato" un DB versione 2000 e tutto sembra funzionare. Quindi penso: "Guarda bravi alla Microsoft..."

Poi apro una query e mi rendo conto che la clausola "ORDER BY" viene totalmente ignorata.

Ho letto un po? su internet e sembra proprio che SQL Server 2005 si comporti così, ignorando la clausola ORDER BY nelle view. Lo confermano anche illustri nomi di AspItalia.

Ora mi chiedo io: Ma è uno scherzo ?
Possibile che non sia una cosa disabilitabile ?

Il TOP(100) Percent + ORDER BY non funziona, non lo abbia mai usato, su SQL Server 2000 funziona tutto anche senza top(100) percent.

Ciao.
Riccardo.
17 messaggi dal 27 gennaio 2006
www.marcopipino.it
cyber_man ha scritto:
Salve,
Ho provato la versione developer di SQL Server 2005.
Ho "Attaccato" un DB versione 2000 e tutto sembra funzionare. Quindi penso: "Guarda bravi alla Microsoft..."

Poi apro una query e mi rendo conto che la clausola "ORDER BY" viene totalmente ignorata.

Ho letto un po? su internet e sembra proprio che SQL Server 2005 si comporti così, ignorando la clausola ORDER BY nelle view. Lo confermano anche illustri nomi di AspItalia.

Ora mi chiedo io: Ma è uno scherzo ?
Possibile che non sia una cosa disabilitabile ?

Il TOP(100) Percent + ORDER BY non funziona, non lo abbia mai usato, su SQL Server 2000 funziona tutto anche senza top(100) percent.

Ciao.
Riccardo.


I prodotti della Microsoft, ma in genere tutti, vanno comprati dsolo dopo l'uscita del primo service pack
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
cyber_man ha scritto:

Ora mi chiedo io: Ma è uno scherzo ?
Possibile che non sia una cosa disabilitabile ?


Fai riferimento a questo mio blog

http://blogs.aspitalia.com/lucabianchi/post1366/VisteTOP100PERCENTORDERBYSQLServer2005.aspx

e ti renderai conto che non è un bug ma una precisa scelta progettuale...

Bye
215 messaggi dal 07 settembre 2005
Era proprio a quello/te che mi riferivo quando parlavo di "nomi illustri di aspitalia".

Comunque "Una precisa scelta progettuale" del piffero!

Se non gli riesce orttimizzare gli algoritmi di ordinamento cosa fa M$ ? Toglie l'pzione ORDER BY !

Vi sembra sensato ?
E' ridicolo !
E ancora più ridicolo è che non si possa forzare "la compatibilità" decidendo volontariamente di penalizzare le prestazioni.



Ciao.
Riccardo.
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
cyber_man ha scritto:
Era proprio a quello/te che mi riferivo quando parlavo di "nomi illustri di aspitalia".


Beh, grazie della considerazione... ;-)


Comunque "Una precisa scelta progettuale" del piffero!

Se non gli riesce orttimizzare gli algoritmi di ordinamento cosa fa M$ ? Toglie l'pzione ORDER BY !

Vi sembra sensato ?


Si, assolutamente daccordo con le scelte progettuali fatte da MS ed i motivi sono condivisi da tutto il mondo tranne che da te e pochi altri che adesso saranno (finalmente dico io) costretti a rivedere tali assurdità.
Le ragioni ho tentato di esporle nella maniera più chiara che mi sia riuscita nel post che ti ho indicato ed in quello in esso linkato. Se non ho convinto te ne prendo atto... :-)


E ancora più ridicolo è che non si possa forzare "la compatibilità" decidendo volontariamente di penalizzare le prestazioni.


Perdonami ma questa mi sembra una opzione ridicola... ;-)
Ci sono dei casi in cui il query optimizer "modifica" la query inviata per trasformarla in qualcosa di più efficiente, ma riempire il codice di controlli simili finirebbe con il penalizzare il lavoro del query processor (a vantaggio dei competitor di SQL Server).
Non conosco il vero motivo per cui vuoi costringere SQL Server a fare un doppio ordinamento uno dei quali inutile, ma se proprio vuoi sapere un workaround esiste, ma per il tuo bene (anzi, più per quello del/dei dba con cui lavori o lavorerai) è meglio che non te lo dica... :-)

Bye
2.410 messaggi dal 13 febbraio 2003
Contributi
"m4rc0" <m4rc0> ha scritto nel messaggio news:257473@...

I prodotti della Microsoft, ma in genere tutti, vanno comprati dsolo dopo l'uscita del primo service pack

esiste anche gente che lavora su tali prodotti prima degli altri proprio per prepararsi alle varie richieste e pertanto non tutti posso permettersi il lusso di aspettare, che poi è consigliabile un periodo di rodaggio da sistemista sono perfettamente daccordo il problema è che non è sempre così semplice da far capire agli sviluppatori
Qui mi fermo prima di andare OT
215 messaggi dal 07 settembre 2005
Francamente dal tuo post non si capisce il vero motivo progettuale che ha spinto M$ a eliminare l'ORDER BY ma si capisce solo che tu sei a favore. Inoltre mi sembra che parli molto del TOP(100) PERCENT che non c'entra troppo con l'ORDER BY, è forse il work around, ma poi non funziona.
In particolare capisco che l'ordinamento in query annidate sia inutile ma quantomeno, visto che il query optimizer conosce l'ordine di annidamento, che sia rispettato nell'ultima e cioè in quella che poi invia i record a qualcosa di "esterno" o di chiamante.
Ma poi, l'oggetto view stà nel DataBase, e io, lato front end, non me ne voglio preoccupare...
Il DataBase mastica tabelle e ordinamenti... Che faccia il suo lavoro e che non rompa le scatole a che ne fa un altro!

Per me è inammissibile, e sono sicuro che Oracle non si comporta così.
Può essere molto utile demandare al database parte della logica di presentazione delle informazioni.
Un esempio: sviluppo una pagina web per delle statistiche su miliardi di record.
Io che sono il programmatore mi occuperò della parte "grafica" e della presentazione dei dati, mentre il DBA si occuperà di ottimizzare le query e presentare i dati nell'ordine in cui li vuole.
Non solo ma se un domani ha voglia (il DBA), può, da solo, cambiare l'ordine dei dati ecc...
Invece adesso devo creagli il sistema per "parametrizzare" l'ordinamento di ogni pagina... Continuo ad essere scioccato!

Mi dispiace, il Mondo sarà con M$ ma a me non mi convince per niente la cosa.

Ciao.
Riccardo.
2.410 messaggi dal 13 febbraio 2003
Contributi
"cyber_man" <cyber_man> ha scritto nel messaggio news:257578@...
Francamente dal tuo post non si capisce il vero motivo progettuale che ha spinto M$ a eliminare l'ORDER BY ma si capisce solo che tu sei a favore.

semplice nelle viste non si usa ORDER BY


Inoltre mi sembra che parli molto del TOP(100) PERCENT che non c'entra troppo con l'ORDER BY, è forse il work around, ma poi non funziona.

l'accrocchio di usare top(100) percent veniva usato in modo improprio ed errato da chi inserire order by nelle viste

[cut]

Per me è inammissibile, e sono sicuro che Oracle non si comporta così.

Oracle 7, 8 e 9 si comportano così
con la sintassi CREATE VIEW se specifichi order by ti ritrovi un errore e la vista non viene creata

Può essere molto utile demandare al database parte della logica di presentazione delle informazioni.
Un esempio: sviluppo una pagina web per delle statistiche su miliardi di record.
Io che sono il programmatore mi occuperò della parte "grafica" e della presentazione dei dati, mentre il DBA si occuperà di ottimizzare le query e
presentare i dati nell'ordine in cui li vuole.
Non solo ma se un domani ha voglia (il DBA), può, da solo, cambiare l'ordine dei dati ecc...
Invece adesso devo creagli il sistema per "parametrizzare" l'ordinamento di
ogni pagina... Continuo ad essere scioccato!

le viste non sono stored procedure, pertanto usiamo le viste come si deve e mettiamo ORDER BY nelle stored procedure

Mi dispiace, il Mondo sarà con M$ ma a me non mi convince per niente la cosa.

non è il mondo m$ ma è ansi sql che definisce che order by non va messo nelle viste, lo stesso lo ottieni con sybase (nostromo ne sa qualcosa) e con una marea di altri rdbms

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.