in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

Batch di comandi

Last post 07-16-2007 15.17 by dmauri. 3 replies.
Page 1 of 1 (4 items)
Sort Posts: Previous Next
  • 07-16-2007 11.46

    • Luca7993
    • Top 150 Contributor
    • Joined on 06-04-2007
    • Posts 2
    • Points 40

    Batch di comandi

    ciao

    ho un programma di dataentry che deve funzionare anche tramite connessione vpn da internet, con i dati in italia, e i client in romania ad esempio

    il problema piu' grosso è naturalmente il ping, che più è lento, piu' l'update di un dato diventa piu' lento.

    ogni volta che modifico un dato, dovrei lanciare una query di update (tramite stored procedure ora)...ho però la necessità di lanciare a volte fino a 5 update consecutivi...che tramite internet rallenta notevolmente il programma, poichè ad ogni update devo aspettare quindi la risposta del server che ha eseguito la query...

    c'è un modo per raggruppare queste query di update in una, quindi creare un batch di comandi, utilizzando gli oggetti del framework(senza quindi crearmi io una stringa sql del tipo execute sp1 GO execute sp2 GO ecc..., che con l'utilizzo dei parametri non mi piacerebbe piu' di tanto come soluzione)?

     

     

     

    grazie

    Ciao

    • Post Points: 20
  • 07-16-2007 12.02 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.179
    • Points 15.440

    Re: Batch di comandi

    Ciao Luca7993

    se stai usando il .NET Framework 2.0 (o superiore) ed utilizzi i DataAdapter puoi sfruttare la nuova proprietà "UpdateBatchSize":

    Performing Batch Updates with a DataAdapter
    http://msdn2.microsoft.com/en-us/library/kbbwt18a(VS.80).aspx  
     
    Se stai utilizzando SQL Server 2005 potresti altrimenti fare una stored procedure che accetta come parametro un XML e fai in modo che la tua applicaziona produca e trasmetta solamente tale documento XML contenente tutti gli update da effettuare.
    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    Filed under: ,
    • Post Points: 20
  • 07-16-2007 13.19 In reply to

    • Luca7993
    • Top 150 Contributor
    • Joined on 06-04-2007
    • Posts 2
    • Points 40

    Re: Batch di comandi

    Ciao Davide

    no, non uso il dataadapter, ho degli oggetti.

    ora come ora mi son creato una routine nello strato di accesso ai dati che accetta una collection di oggetti...e mi crea un comando sql del tipo:

    exec nomeStored @parId = @parId0, @parName = @parName0; exec nomeStored @parId = @parId1, @parName = @parName1;  exec nomeStored @parId = @parId2, @parName = @parName2 ecc, e poi naturalmente agggiungo i parametri di volta in volta... 

    dal punto di vista di creazione a livello di codice è piuttosto semplice...a livello sql invece? è meglio utilizzare come dici te una stored che accetta un parametro sottoforma di xml e crearmi la query col t-sql smazzandomi l'xml, oppure va bene anche così come ho scritto sopra?

     

    ciao

    grazie

    • Post Points: 20
  • 07-16-2007 15.17 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.179
    • Points 15.440

    Re: Batch di comandi

    Ciao Luca

    se il batch non è immenso (migliaia di comandi) direi che il metodo che hai fatto tu può andare benone. Una cosa importante: se i comandi sono legati tra di loro perchè vanno a fare modifiche che devono essere atomiche è bene racchiudere tutto in una bella transazione Smile

    Ciao!
     

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    • Post Points: 5
Page 1 of 1 (4 items)
(C) 2007 User Group Italiano di SQL Server