Sto riscontrando una notevole differenza nell'utilizzo della memoria dell'applicazione .Net utilizzando la stessa app su due copie dello stesso database. L'unica differenza è che nello scenario 1 sto utilizzando una copia locale del database registrata su un'istanza di SQL Server 2005 Express
- e nello scenario 2 sto utilizzando una copia remota del database registrata su un'istanza di SQL Server 2008 Enterprise
.L'utilizzo della memoria del client SQL Express è diverso dall'utilizzo della memoria del client SQL Enterprise
A mia conoscenza, mi aspetto solo una differenza nelle prestazioni SQL e nell'utilizzo della memoria SQL (poiché Express ha un limite di 1 GB).
Tuttavia, quello che vedo è un'enorme differenza (1 GB) di utilizzo della memoria tra di essi, ovvero lo scenario SQL Express
che utilizza principalmente 1 GB di memoria in più. SQL Express
sembra anche essere molto più lento in particolare lavorando con tabelle grandi e query di grandi dimensioni - ma mi aspetterei che questa memoria colpisca essere in SQL e non nella mia applicazione consumatore/client ???
L'app si collega al server SQL utilizzando System.Data.SqlClient.SqlConnection
ed esegue frequenti operazioni SqlCommand
e SqlBulkCopy
.
Qualsiasi pensiero utile sarebbe molto apprezzato!
È un'app client ricca? Tutto ciò che differisce è la stringa di connessione? – Rikalous
Quasi, è un'applicazione .Net (non un'app GUI, ma un servizio) che si connette a SQL. E sì, l'unica differenza tra i due scenari di test è la stringa di connessione ... – Jackfruit
Come stai misurando l'utilizzo della memoria? Sta consumando molta memoria in un colpo o in un graduale aumento nel tempo? – Rikalous