Lavorare con istruzioni e insiemi di risultati

Scaricare il driver JDBC

Quando si usano il Driver Microsoft JDBC per SQL Server e gli oggetti Statement e ResultSet offerti, sono disponibili diverse tecniche per migliorare le prestazioni e l'affidabilità delle applicazioni.

Usa l'oggetto statement appropriato

Quando si usa uno degli oggetti Statement del driver JDBC, ad esempio l'oggetto SQLServerStatement, SQLServerPreparedStatement o SQLServerCallableStatement, verificare che l'oggetto sia appropriato per il processo che si sta eseguendo.

  • In assenza di parametri OUT non è necessario usare l'oggetto SQLServerCallableStatement. Usare invece l'oggetto SQLServerStatement o SQLServerPreparedStatement.
  • Se non si intende eseguire l'istruzione più di una volta o in assenza di parametri IN o OUT, non è necessario usare l'oggetto SQLServerCallableStatement o SQLServerPreparedStatement. Usare invece l'oggetto SQLServerStatement.

Utilizzare la concorrenza appropriata per gli oggetti ResultSet

Non richiedere la concorrenza aggiornabile quando si creano istruzioni che producono set di risultati, a meno che non si preveda effettivamente di aggiornare i risultati. Il modello di cursore predefinito a solo avanzamento e sola lettura è il più veloce per leggere set di risultati ridotti.

Limitazione delle dimensioni dei set di risultati

È consigliabile usare il metodo setMaxRows (o SET ROWCOUNT la sintassi SQL SELECT TOP N) per limitare il numero di righe restituite da set di risultati potenzialmente di grandi dimensioni. Se si opera con set di risultati di grandi dimensioni, valutare l'opportunità di utilizzare un buffer adattivo per le risposte impostando la proprietà della stringa di connessione responseBuffering=adaptive, che corrisponde alla modalità predefinita. Questo approccio consente all'applicazione di elaborare set di risultati di grandi dimensioni senza richiedere i cursori sul lato server e di ridurre al minimo l'utilizzo della memoria dell'applicazione. Per altre informazioni, vedere Uso del buffer adattivo.

Utilizza la dimensione di recupero appropriata

Per i cursori del server in sola lettura, il compromesso riguarda i round trip al server rispetto alla quantità di memoria utilizzata nel driver. Per i cursori del server aggiornabili, la dimensione di prelievo influisce anche sulla sensibilità del set di risultati alle modifiche e alla concorrenza sul server. Gli aggiornamenti alle righe nel buffer di recupero corrente non sono visibili fino all'esecuzione esplicita del metodo refreshRow o fino a quando il cursore non lascia il buffer di recupero. I buffer di recupero di grandi dimensioni offriranno prestazioni migliori (meno round trip al server), ma sono meno sensibili alle modifiche e riducono la concorrenza sul server se si utilizza CONCUR_SS_SCROLL_LOCKS (1009). Per ottenere il livello massimo di sensibilità alle modifiche, utilizzare la dimensione di recupero 1. Tuttavia, questa impostazione comporterà un'andata e ritorno verso il server per ogni riga recuperata.

Uso dei flussi per parametri IN di grandi dimensioni

Utilizzare i flussi o i tipi di dati BLOB e CLOB che vengono materializzati in modo incrementale per gestire l'aggiornamento dei valori delle colonne di grandi dimensioni o l'invio di parametri IN di grandi dimensioni. Il driver JDBC invia questi tipi di dati al server in blocchi, in più andate e ritorni, consentendo di impostare e aggiornare valori di dimensioni superiori a quelle che possono essere contenute in memoria.

Vedi anche

Uso del driver JDBC per il miglioramento di prestazioni e affidabilità