"cyber_man" <cyber_man> ha scritto nel messaggio news:257621@...
1)
M$ in tutti i suo DB < SQL Server 2005 dà una prestazione (fuori standard).
Chi la usa (un po? bischero come me) e volesse passare a SQL Server 2005 si deve attaccare alle funi del cielo, perché non esiste un livello di compatibilità per dare tempo alla migrazione.
Non esiste compatibilità sugli accrocchi (top 100 percent)
e sarebbe ora di pulire quel codice non trovi
2)
A prescindere dagli standard ansi, a cui le persone dotte come voi sono tanto affezzionate, nessuno mi ha dato una motivazione tecnica valida del perché nelle VIEW non ci può stare l'ORDER BY.
I limiti delle views
Non è possibile usare la clausola ORDER BY in una view
Questa limitazione può sembrare assurda, ma difatti non è possible specificare un ordinamento tramite la clausola ORDER BY per il ROWSET ritornato da una view. Il motivo di tutto ciò e che la view come la tabella ritorna un set di dati che non possiede alcun ordinamento. (Standard ANSI)
Estratto da
http://freeasp.html.it/guide/lezione.asp?id=135PS primo risultato di google con le keyword "creare viste sql" pertanto bastava usare google
A me sembrano argomenti construttivi se poi in questa lista si parla solo di argomenti elementari o comodi perché si fa presto a fare replay... Va bene!
allora posta domande costruttive e non elementari e ne discutiamo più che volentieri :-D
ma il tuo ostinarti ad usare ORDER BY nelle viste è sbagliato e ti ripeto è errato in mssql, oracle, db2, sybase, informix, ecc. in quanto è errato in SQL
La mia Posizione:
1)
L'atteggiamento è discutibile, non sarà questa la sede per discuterne ma non mi potete dire che è un atteggiamento corretto verso il cliente.
vedi sopra, cerco di farti capire in modo semplice:
Se acquisti un paio di scarpe e le calzi al contrario (piede sinistro, scarpa destra e così per l'altro piede), il tuo order by nelle viste, non puoi andare a reclamare al negozio, nel tuo caso ms, hai 2 soluzioni, o compri una paio di scarpe più grandi così non ti danno fastidio e puoi sempre metterle al contrario, soluzione proposta da Luca top 99.9999, oppure fai la cosa più giusta e le calzi correttamente, quindi la smetti di usare ORDER BY nelle viste
2)
Il Query Designer è una figura differente dal Software Developer, nelle piccole realtà forse spesso sono la stessa persona, in altre realtà sono spesso più persone.
ok
Come Team Manager non vi capita mai che il committente vi chiede di modificare l'ordinamento dei record di una pagina del suo sito che dietro ha una select che convolge decine di tabelle ?
si certo
Voi come fate ?
- Chiamate il Software Develeper che apre Visual Strudio
se l'ho fatto io lo gestisco io, sempre che ne ho il tempo altrimenti giro il problema al chi lo ha gestito
- Cerca la Pagina che contiene l'istruzione SQL (che magari è centinaia di righe), la copia e la incolla in un SQL designer
già qui non ci siamo, il codice sql non deve esistere nelle pagine, è bene usare stored procedure parametriche
- Chiamate la persona che funge da Query Designer di quell'area di tabelle e gli chiedete di modificare l'SQL per ordinare i dati per il campo X - Il Query Designer, giustamente si prende il suo tempo perché deve valutare se inserire indici o quant'altro per migliorare le prestazioni - 5 Ore dopo vi
chiama dicendo che ha finito e vi manda per email la stringa SQL modificata
- il Software developer che stava lavorando su altre cose riapre Visual Strudio
personalmente non assumerei mai uno sviluppatore di applicazioni che non conosce almeno le basi sql, come fa uno sviluppatore a lavorare con recordset a gestire binding quando non capisce neppure il codice scritto in una stored procedure??
- Guadra un po? il codice e crede che sia stato aggiunto solo la clausola ORDER BY e quindi incolla solo quella parte mentre il Query Designer aveva stravolto paurosamente la query.
ORDER BY si mette nelle stored procedure e non nelle viste pertanto in query designer richiami la vista (esattamente come fai con le tabelle) e LI IMPOSTI ORDER BY e non nella vista
- il Software developer quindi compila l'applicazione, la pubblica sul sito
del cliente e chiama voi dicendo che ha finito
- voi chiamate il cliente dicendo che adesso può guardare
- Il cliente vi chiama dicendo che la pagina è paurosamente lenta e non rinnoverà il contratto
Non mi bacchettate troppo è solo un esempio scherzoso :-)))
personalmente andrei a bere con il cliente a spese dell'incompetente che ha sviluppato l'applicazione, che da lunedì prenderà un mesetto di congedo non pagato per leggersi per bene le basi di SQL
:-D
Se aveste fatto come me invece:
- Io chiamo il Query Designer e gli dico di campiare l'ordinamento della view. Finito! Nessuna ricompilazione e minimo dispendio di risorse. Se poi mi volete dire che devo usare una Stored Procedure OK, ma non mi dite che il metodo giusto è il vostro.
non sono così presuntuoso non lo dico io ma tutti i testi di sql
Un consiglio smettila di usare il query designer per un po' e inizia a scriverle le query almeno entrerai nella loro logica e dopo aver scritto 30 query con join in 7 divese tabelle capirai a cosa servono le viste :-D
Se vi ho annoiato, scusatemi, io li ritengo argomenti interessanti.
Nessuna noia, è un problema abbastanza comune di molti sviluppatori fermarsi al loro problema e cercare di risolverlo nel modo errato complicando la vita ai poveri dba o sistemisti che dovranno far girare il vostro codice :-D