Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Consiglio e spiegazione funzionamento motore sql
giovedì 31 marzo 2011 - 21.35
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
massimo1965
Profilo
| Junior Member
134
messaggi | Data Invio:
gio 31 mar 2011 - 21:35
Ciao a tutti,
avrei bisogno di capire una cosa in merito al funzionamento del motore SQL.
Quando eseguo una query sql da un client verso un server sql che cosa ritorna a client ? Solo il risultato della query oppure un blocco di informazioni che vengono poi filtrate dal client ?
Vedo di spiegarmi meglio :
supponiamo che :
- crei un servizio web residente su un server sql
- questo riceve le richiesta da enne client per l'esecuzione di query sql del tipo :
select t1.id,t1.nome,t2.saldo from clienti t1
inner join coge t2 on t2.id = t1.id
where t1.codice = '123' and t2 = '2010'
- una volta elaborata invii il risultato al client che l'ha richiesta
- il quale ci fa quello che vuole , popolare una griglia o un creare un report...
tale soluzione sarebbe : più o meno performante e più meno sicura se la stessa query venisse inviata direttamente dal client al server sql ?
Vi ringrazio per la pazienza
Massimo
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 1 apr 2011 - 09:37
>Ciao a tutti,
>avrei bisogno di capire una cosa in merito al funzionamento del
>motore SQL.
>Quando eseguo una query sql da un client verso un server sql
>che cosa ritorna a client ? Solo il risultato della query oppure
>un blocco di informazioni che vengono poi filtrate dal client
>?
Ciao Massimo,
Se stai parlando di SQL Server, Oracle, MySQL, PostgreSQL, ecc. "il motore" risiede sul server, pertanto i client non faranno altro che sottoporre le query al server che eseguirà le elaborazioni restituendo il set di righe o l'esito dell'operazione che soddisfano la richiesta.
Se invece consideriamo dei DBMS file-based come Access, il DBEngine (JET in questo caso) risiede su ogni singolo client e le elaborazioni sono sempre eseguite localmente.
>Vi ringrazio per la pazienza
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
massimo1965
Profilo
| Junior Member
134
messaggi | Data Invio:
ven 1 apr 2011 - 13:25
Grazie Lorenzo
sto parlando di SQL server 2005 e poi 2008.
Quindi in pratica non ho nessun vantaggio a creare una struttura del genere (anzi)
Un ultima cosa, per ottimizzare le query, oltre alla costruzione delle join in modo logico, un parametro da considerare è anche il numero delle colonne, giusto ? Mi spiego, se mi serve estrapolare il campo nome, cognome e via, scrivo select nome,cognome,via from... e non select * from in quanto il passaggio di dati fra server e client, in questo caso sarà maggiore che rispetto a primo. Corretto ?
Scusa se ti chiedo conferma di queste cose ma stiamo discutendo per la realizzazione di un progetto e volevo avere delle conferme da persone più esperte.
Grazie ancora.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
ven 1 apr 2011 - 14:08
>Quindi in pratica non ho nessun vantaggio a creare una struttura
>del genere (anzi)
Direi di si
>Un ultima cosa, per ottimizzare le query, oltre alla costruzione
>delle join in modo logico, un parametro da considerare è anche
>il numero delle colonne, giusto ? Mi spiego, se mi serve estrapolare
>il campo nome, cognome e via, scrivo select nome,cognome,via
>from... e non select * from in quanto il passaggio di dati fra
>server e client, in questo caso sarà maggiore che rispetto a
>primo. Corretto ?
Assolutamente corretto.
Un altro aspetto legato alle performance è l'indicizzazione del db.
Sui Books Online scoprirai le diverse tipologie di indici offerte da SQL Server e consigli su quali colonne è opportuno indicizzare:
http://msdn.microsoft.com/en-us/library/ms189271.aspx
>Scusa se ti chiedo conferma di queste cose ma stiamo discutendo
>per la realizzazione di un progetto e volevo avere delle conferme
>da persone più esperte.
Ma figurati, i forum servono proprio per scambiare opinioni
>Grazie ancora.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !