* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Marzo 12, 2026, 12:01:24 am

Inserisci il nome utente, la password e la durata della sessione.

169 Visitatori, 0 Utenti

Autore Topic: Applicazione lato server: Stored Procedure vs Query  (Letto 1116 volte)

Lorenzo

  • Newbie
  • *
  • Post: 30
  • Karma: +0/-0
Applicazione lato server: Stored Procedure vs Query
« il: Febbraio 12, 2026, 10:10:37 pm »
Scrivo perchè tormentato da un forte dubbio.
Sviluppando nei ritagli di tempo un'applicazione server che gestisce delle API,questa applicazione interroga una database.
Trattandosi di un'applicazione server,e come tale chiamata a gestire pool di varie connessioni,mi chiedevo se per far si che il server interagisca con il server DBMS si serva di normali queries oppure impieghi le Stored Procedures.
Se non ricordo male,le Stored Procedures hanno il vantaggio della cache,ovvero se un utente esegue una determinata query e l'utente successivo richiede gli stessi risultati della query precedente,non verrebbe eseguita una seconda volta la stessa query,ma il "fetch" dei risultati avverrebbe dallo stesso dataset.

Comunque ho una enorme confusione.
Nello sviluppo dei gestionali era scontato per me ricorrere alle semplici queries,specie per lo sviluppo dei clients o quando si trattava di un applicazione mono utenza con il DBMS nella stessa macchina.

Spero di essermi spiegato bene.

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1712
  • Karma: +53/-0
  • Prima ascoltare, poi decidere
Re:Applicazione lato server: Stored Procedure vs Query
« Risposta #1 il: Febbraio 12, 2026, 10:57:46 pm »
Ciao.
Intanto il funzionamento specifico è determinato da quale DBMS usi.
Ad esempio se si parla di MS SQLServer, in realtà nessun risultato viene memorizzato ma viene usata la cache per mantenere i metadati in particolare di tabelle e indici.

Le stored procedures, hanno un processo particolare (cioè la compilazione) per cui ogni stored procedure usata rimane in memoria cache (la sua compilazione, non i risultati) per poter essere disponibile a future prossime richieste.
La cache è assolutamente gestita internamente ed è soggetta a una valutazione d'uso legata al carico, alle risorse di memoria o ad altri fattori, quindi non è assolutamente detto che ci sia sempre un vantaggio ad usare una o l'altra.
In genere si usano le stored procedure per attività che richiedono una certa complessità (come cicli o attivtà logiche varie) ed essendo "compilate" internamente hanno un vantaggio indubbio. Da notare che le stored procedure vengono compilate al primo utilizzo (e poi dopo essere state scaricate dalla cache).
Le query standard invece vengono "interpretate" ogni volta (non compilate) e quindi hanno un impatto nell'esecuzione.

Spero in poche righe di averti delucidato sulla cosa.
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Mimmo

  • Full Member
  • ***
  • Post: 112
  • Karma: +4/-0
Re:Applicazione lato server: Stored Procedure vs Query
« Risposta #2 il: Febbraio 13, 2026, 10:01:54 am »
Ciao,
credo che per il tuoi server tu possa scegliere qualsiasi metodo: query o stored procedure o un mix di entrambe.
Oltre a tener conto di considerazioni come quelle già espresse da DragoRosso, valuta anche se hai convenienza a tenere la business logic della tua applicazione dentro il db (con le stored procedure) o lato codice del server (con le query). Io, per le esperienze che ho avuto, cerco di evitare gli approcci ibridi e, se la complessità sale, preferisco gestirla nel codice sorgente piuttosto che dentro il db. Però non c'è una regola universale, valuta come meglio credi. Come nota di colore: anni fa avevo visto una soluzione in ambiente manifatturiero sviluppata da una grossa società multinazionale fatta tutta con stored procedure su sql server e interfaccia utente costruita a botte di fogli excel. A me era venuta la pelle d'oca però in realtà riuscivano anche a venderla :-)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1712
  • Karma: +53/-0
  • Prima ascoltare, poi decidere
Re:Applicazione lato server: Stored Procedure vs Query
« Risposta #3 il: Febbraio 13, 2026, 10:30:58 am »
Adesso che, ad esempio in PostgreSQL, si può inserire dentro un campo una stringa JSON e una query, e anche una stored procedure, può anche eseguire la richiesta sul contenuto del JSON direttamente (ossia come su fosse lui stesso un ulteriore campo del DB) ... bhè voglio proprio vedere chi è quello che usa le stored procedure in queste condizioni.
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Lorenzo

  • Newbie
  • *
  • Post: 30
  • Karma: +0/-0
Re:Applicazione lato server: Stored Procedure vs Query
« Risposta #4 il: Febbraio 22, 2026, 11:22:18 am »
Scusate il ritardo con cui rispondo.
Vi ringrazio per i vostri interventi,@DragoRosso e @Mimmo.
In passato ho studiato il PL/SQL di Oracle,ma non l'ho mai adoperato proprio perchè ho solidamente cre]duto che le Storde servissero solo per operazioni complesse di routine che richiedono un codice strutturato.
Di brutto c'è che non sono flessibili e non possono essere personalizzabili,però il trucchetto migliore mi sembra di impostarle in modo da non limitare loro i campi della tabella su cui operare.

@Mimmo sono d'accordo riguardo alla complessità delle operazioni,il codice Pascal sembra essere molto più potente e flessibile di qualsiasi linguaggio legato al DB.

Adesso che, ad esempio in PostgreSQL, si può inserire dentro un campo una stringa JSON e una query, e anche una stored procedure, può anche eseguire la richiesta sul contenuto del JSON direttamente (ossia come su fosse lui stesso un ulteriore campo del DB) ... bhè voglio proprio vedere chi è quello che usa le stored procedure in queste condizioni.


Interessante,anche se dovrei vedere come lavorare sulle Stored anche in Postgres.

Grazie ancora per i vs interventi. ;)
.

 

Recenti

How To

Utenti
Stats
  • Post in totale: 20191
  • Topic in totale: 2433
  • Online Today: 169
  • Online Ever: 1080
  • (Novembre 10, 2025, 06:15:39 am)
Utenti Online
Users: 0
Guests: 169
Total: 169

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.