Originariamente inviato da franzauker
capisco cosa intendi... però ti assicuro che per esperienze se le tabelle non sono indicizzate a dovere si rallentano le query. tieni conto che viene fatta una query in join
![]()
Originariamente inviato da franzauker
capisco cosa intendi... però ti assicuro che per esperienze se le tabelle non sono indicizzate a dovere si rallentano le query. tieni conto che viene fatta una query in join
![]()
Sì sì. se puoi passare a SQL Server secondo me dovresti essere a posto...e se provo a convertire tutto su sql server?
Andrò meglio, vero?
se costruisci bene le tabelle con gli indici al posto giusto non dovresti avere nessun problema di prestazione (anche con tabelle di centinaia di migliaia di record) né di limite di connessione...
uso il condizionare perché io di SQL Server non ho quasi esperienza, però almeno è un vero database![]()
va bene ragazzi, appena converto tutto analizziamo insieme la velocità
Comunque, sto creando una sorta di yahoo answer, e yahoo answer ha circa 45.000 record per le domande.
Io non credo che arriverò a quel numero, ma ora sto facendo i test con 50.000 record per stare sicuri![]()
Response.Write("Tonyhhkx Programmer32");
![]()
non esiste un modo efficiente per paginare le righe ritornate (se per efficiente intendiamo "magico"), o meglio ci vuole un tipo di indice particolare per il kesimo elemento più grande (esiste per motori specializzati, non mi risulta nè per sql server nè per mysql)
---
La presentazione "a pagine" è inerentemente inefficiente; l'esistenza di un indice ti consente di ordinare le righe, ma nulla più.
O meglio puoi avere risposte "magiche" per il minimo e il massimo, ma non per la paginazione.
Quindi puoi
1) eliminare la paginazione
2) avere un linguaggio sufficientemente potente da mettere in cache un intero db (=> ma ti serve una macchina davvero potente)
3) studiare un metodo "furbo" per marcare le righe, così da fare interrogazioni a range (non il massimo della vita, ma con gli indici tipicamente btree risparmi un po' di attraversamento di foglie)
4) fregartene. considera però che le interrogazioni del tipo limit x,y (su mysql) non sono per nulla efficienti
Quello che dice franzkuker è indubbiamente vero...Originariamente inviato da franzauker
![]()
non esiste un modo efficiente per paginare le righe ritornate (se per efficiente intendiamo "magico"), o meglio ci vuole un tipo di indice particolare per il kesimo elemento più grande (esiste per motori specializzati, non mi risulta nè per sql server nè per mysql)
---
La presentazione "a pagine" è inerentemente inefficiente; l'esistenza di un indice ti consente di ordinare le righe, ma nulla più.
O meglio puoi avere risposte "magiche" per il minimo e il massimo, ma non per la paginazione.
Quindi puoi
1) eliminare la paginazione
2) avere un linguaggio sufficientemente potente da mettere in cache un intero db (=> ma ti serve una macchina davvero potente)
3) studiare un metodo "furbo" per marcare le righe, così da fare interrogazioni a range (non il massimo della vita, ma con gli indici tipicamente btree risparmi un po' di attraversamento di foglie)
4) fregartene. considera però che le interrogazioni del tipo limit x,y (su mysql) non sono per nulla efficienti
però le soluzioni proposte sono un tantino drastiche IMHO![]()
perché rinunciare alla paginazione? solo perché lato DB è inefficiente?
Il fatto è che là fuori è pieno di siti che la usano anche con migliaia e migliaia di record dietro...
Ora un conto è usare Access e avere tempi biblici di attesa, un conto è usare SQL Server ed essere mediamente inefficienti..
In fondo, se la paginazione è inefficiente lato DB vorrà dire che cercherai di renderla più efficiente lato web server, usando qualche caching framework messo a disposizione dal tuo linguaggio di script (come ad esempio può essere APC in ambito PHP), o studiandoti qualche altro trucchetto...![]()
in bocca al lupo
Philbert
oltre al punto 4) c'è anche il 5), ma non per sql server, bensì per mysql.
ovvero il setlimit di sphinx
"Ora un conto è usare Access e avere tempi biblici di attesa, un conto è usare SQL Server ed essere mediamente inefficienti."
con mediamente inefficenti che intendi?
Diciamo che per avere una maggiore velocità non dovrei paginare niente ma è un peccato.
Essendo che sarà la prima volta che lavorerò con sql server chiedo ne vale davvero la pena passare a sql server o mi arrangio con access? (per quello che voglio ottenere)
Response.Write("Tonyhhkx Programmer32");
Ascolta, tonyhhkx non è che ne vale la pena....è INDISPENSABILE!Originariamente inviato da tonyhhkx
Essendo che sarà la prima volta che lavorerò con sql server chiedo ne vale davvero la pena passare a sql server o mi arrangio con access? (per quello che voglio ottenere)
Non puoi gestire la mole di dati di un sito simile a yahoo answers con Access...ma ti rendi conto ?![]()
è come se dicessi: devo tagliare una quercia; vale davvero la pena passare a una sega da boscaiolo o mi arrangio con la limetta da unghie?![]()
Ora io non ti dico di usare una sega elettrica circolare tipo Oracle 11g, ma almeno una una sega da boscaiolo come SQL Server è il minimo![]()
va bene ho capito la differenzaOriginariamente inviato da philbert
Ascolta, tonyhhkx non è che ne vale la pena....è INDISPENSABILE!
Non puoi gestire la mole di dati di un sito simile a yahoo answers con Access...ma ti rendi conto ?![]()
è come se dicessi: devo tagliare una quercia; vale davvero la pena passare a una sega da boscaiolo o mi arrangio con la limetta da unghie?![]()
Ora io non ti dico di usare una sega elettrica circolare tipo Oracle 11g, ma almeno una una sega da boscaiolo come SQL Server è il minimo![]()
userò sql server
Response.Write("Tonyhhkx Programmer32");
hem ragazzi sto avendo una serie di problemi con sql server
per esempio, io al page load controllavo se l'utente era connesso in questo modo:
se quindi un utente era connesso visualizzava il benvenuto.Codice PHP:if (Page.User.Identity.Name != "")
{
lgHome.Visible = false;
registrazione.Visible = false;
lblUtente.Text = "Benvenuto " + Page.User.Identity.Name.ToString();
lblUtente.Visible = true;
rbLogOut.Visible = true;
}
Ora è sempre connessoanche se faccio
mi spiegate bene come dovrei comportarmi con questo database?Codice PHP:FormsAuthentication.SignOut();
Response.Write("Tonyhhkx Programmer32");