Il software SQLWindows di Gupta (ora CENTURA) offre un ambiente di programmazione molto adatto per la realizzazione di applicazioni Client/Server verso database relazionali con interfaccia grafica MS-Windows 3.X.
Nel caso di cattive prestazioni sono molti gli elementi da verificare in un ambiente client/server. Possono essere presenti problemi di configurazione/applicativi sul PC, sulla rete, sul server, sull'RDBMS, nell'architettura, ...
In questo breve documento sono riportati
alcuni suggerimenti per il miglioramento delle prestazioni di programmi realizati
con SQL*Windows.
Configurazione del sistema
Le prestazioni delle applicazioni SQLWindows dipendono dalla configurazione del sistema ospite. Una corretta configurazione permette di avere prestazioni adeguate dalle applicazioni.
Non esistono regole generali, possono essere tuttavia fornite alcune indicazioni generali sulla configurazione di un PC:
Utilizzo dell'SQL
L'ambiente SQLWindows e' molto di frequente utilizzato per la realizzazione in client/server verso RDBMS relazionali.
L'utilizzo dei corretti statement SQL e l'eventuale creazione di indici sulle tabelle utilizzate puo' portare a drastiche riduzioni di tempi. Per ulteriori informazioni, relativamente all'accesso verso l'RDBMS Oracle, consultare Ottimizzazione degli statement SQL in Oracle e Aspetti tecnici Oracle di interesse per la programmazione.
Un attenzione particolare deve essere posta nell'effettuazione del porting dell'applicazione verso un altro RDBMS. Anche se l'SQL presenta sempre poche differenze, dal punto di vista dell'ottimizzazione e del tuning le differenze possono essere notevoli.
Disabilitazione dei Result Set
SQLWindows di default utilizza un'area temporanea su disco (FERS: Front End Result Set) in cui scarica il risultato di ogni selezione. In tal modo, per selezioni ampie e caricando (FETCH) piu' volte gli stessi record, si hanno migliori prestazioni.
Tuttavia se le selezioni restituiscono pochi record o, come avviene in molti casi per effettuare controlli, un solo record, la tecnica impiegata da SQLWindows e' inefficiente. Di frequente avviene infatti che e' piu' il tempo impiegato per la creazione del file (che su DOS avviene con una scrittura fisica sul disco) che per estrarre i dati.
E' possibile disabilitare i FERS utilizzando la funzione SalSetResultSet().
Tale funzione consente di definire se un Handle utilizza o meno i FERS.
Attivazione del programma
L'attivazione delle applicazioni scritte in ambiente SQLWindows di Gupta richiede diversi secondi. Sono infatti necessari per caricare le varie DLL necessarie per l'esecuzione. Altro tempo e' inoltre necessario se si accede a database per il caricamento delle relative DLL.
Per migliorare i tempi di attivazione dell'applicazione e' possibile utilizzare la seguente tecnica: realizzare una semplice applicazione SQLWindows composta da una sola icona e far attivare tale applicazione allo startup di windows (eg. inserendo l'applicazione nel menu di avvio). In tal modo le DLL restano caricate sul sistema velocizzando l'apertura di ogni nuova applicazione SQLWindows.
Testo: Miglioramento delle prestazioni in
SQLWindows
Data: 17 Marzo 1997
Versione: 1.2.0
Autore: mail@meo.bogliolo.name