LENTEZZA DI CONNESSIONE CON SQL SERVER 2000

mercoledì 28 gennaio 2004 - 23.23

H2MARON Profilo | Junior Member

Premessa: Abbiamo appena iniziato a studiare Vb.NET.
Ho la necessità di gestire tabelle di sql server 2000 con grandi quantitativi di record (es: > 100000). Utilizzando ogni tipo connessione (Dataset, OLEDB...ecc...) le prestazioni non cambiano!(es per visualizzare in un Datagrid o caricare in un array circa 93000 record ci impiego dai 14 a 35 sec.)

Configurazione nostra rete: Server di dominio con 4 Processori 2GB ram. OS: windows 2000 Server.
Client: Pentium4 1.5 GB 256MB di ram. OS:Windows 2000 PRO
RETE a 100Mb.

NOTA BENE: con VB6 connessione ADO la stessa Tabella viene caricata nella metà del tempo (6/7 sec.)

In attesa di una vostra risposta vi ringraziamo e vi facciamo i complimenti per il sito!!
e mi raccomando AIUTATECIIII!!!!!!
CIAO!

Brainkiller Profilo | Guru

Ciao e Benvenuti,
mi sembrano un po' tantini 100 mila records da bindare su una datagrid, no ?
Anche perchè proprio a livello fisico di una persona come si fa a consultare una datagrid di 100 mila records ???

Inoltre voi come procedete ? Create un SqlDataAdapter, poi riempite un DataSet e quest'ultimo lo bindate alla vostra DataGrid ? Se fosse questo il caso, attenzione ! Il DataSet è una struttura dati che sta poi in memoria (RAM) e quindi andreste a fare un dump del Database SQL da disco alla memoria RAM del server che hosta l'applicazione Web.

Riguardo VB6 purtroppo il confronto è abbastanza difficile visto che si tratta di 2 tecnologie completamente diverse proprio dal punto di vista architetturale.

Vi consiglio anche di vedere un po' se il DB Sql funziona bene, magari facendo dei test con il Query Analyzer. Avete un DBA che vi gestisce il Database ? Avete fatto un tuning ottimale ?

Fateci sapere.
grazie e ciao

david

H2MARON Profilo | Junior Member

Grazie ora proviamo...

Comunque posso dirvi che il DB non ha problemi.
Effettivamente 100000 sono tanti è so che è difficile che capiti...
Abbiamo fatto prove bindando un grid...quindi con un DataAdapter e Un dataset...
di una tabella con 1000 record, poi con 4000 e poi con 8000...fino ai 4000 nessun problema...dopo inizia a rallentare vistosamente!
I risultati migliori li abbiamo ottenuti comunque con una StoreProc. dal server...

La nostra domanda serviva più a noi per capire se stavamo affrontando la strada giusta visto che abbiamo appena iniziato a studiare .NET e che la lentezza non fosse causata da nostri errori!

Appena abbiamo fatto prove dettegliate o appena ci sorgo altri problemi saremo felici di riccontattarvi...
Grazie Tante per il momento...e apresto!!!

Brainkiller Profilo | Guru

Ciao,
no non commettete errori, però ci sono dei concetti di base da sapere, come dicevo quando usate un dataset e utilizzate il metodo Fill del DataAdapter succede che i record vanno a finire nel Dataset il Dataset è contenuto in memoria e quindi tendenzialmente all'aumentare dei record restituiti le pretazioni calano di conseguenza, bisogna capire come calano.
Dovresti se siete in grado fare un tracking del problema ed eventualmente con il perfmon.exe di Windows monitorare l'uso di memoria del server quando fate queste operazioni per capire che uso ne viene fatto.

ciao
david
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5