Miglioramento delle prestazioni in SQLWindows

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.


Attualmente dal punto di vista tecnico e di penetrazione sul mercato non e' lo strumento piu' interessante. Tuttavia tale ambiente e' molto diffuso grazie alla sua tempestiva diffusione all'uscita delle prime versioni di MS-Windows.

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, ...


Il primo fondamentale passo e' quello di riconoscere qual e' l'anello della catena che rallenta il funzionamento. Questo portera' ad un reale miglioramento nel sistema in esame.

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