in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

DBCC FREEPROCCACHE e restart del server

Last post 10-12-2007 15.02 by dmauri. 8 replies.
Page 1 of 1 (9 items)
Sort Posts: Previous Next
  • 07-26-2007 15.07

    DBCC FREEPROCCACHE e restart del server

    Ciao belli.

    Ho avuto a che fare proprio poco fa con una select "bastarda"!

    Lanciata da sql analyzer (sono in sql 2000) ci mette tra gli 8 ed i 12 secondi.

    Lanciata dal qualsiasi altra fonte (programmi, osql, ect, etc, etc) dopo 10 minuti e' ancora li che aspetta.

    Ho risolto (apparentemente) svuotando la chache dei piani di esecuzione con il signor

    DBCC FREEPROCCACHE

    ora e' una scheggia anche se interrogata esternamente. 

    Domanda veloce veloce...

    Quando io riavvio il server, tra le altre cose, vengono anche droppati i piani di esecuzione?

     Spero "di essere stato spiegato".

    Ciao
    Ale

     

    • Post Points: 20
  • 07-26-2007 16.35 In reply to

    Re: DBCC FREEPROCCACHE e restart del server

    FANTOZZIIII!!!!
    Si faccia una domanda e si dia una risposta!!!
    ...Ho usato la mia macchinetta come test...

    lanciando il comando
    DBCC PROCCACHE
    si ottengono le statistiche relative.
    ERGO!!!!
    osservo le statistiche, riavvio il server, ri-osservo le statistiche.
    Al riavvio del server vengono automaticamente rimossi tutti gli elementi della cache delle procedure.

    Grazie per la risposta egregio collega.

    Si figuri illustrissimo.

    I miei omaggi alla Signora.

    Sara' servito quanto prima.

    (AIUTOOOO!!!!! SONO NEL TUNNELLLLLLLL!!!!!!)

    Big Smile Big Smile Big Smile Big Smile Big Smile

    • Post Points: 20
  • 07-26-2007 16.45 In reply to

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

    Re: DBCC FREEPROCCACHE e restart del server

    Big Smile Big SmileBig SmileBig SmileBig SmileBig SmileBig Smile

    Bisogno di vacanza?

    Big Smile Big SmileBig SmileBig SmileBig SmileBig SmileBig Smile

     

    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: 20
  • 07-27-2007 9.26 In reply to

    Re: DBCC FREEPROCCACHE e restart del server

    si esimio Presidente!

    Big Smile

    • Post Points: 5
  • 10-09-2007 9.12 In reply to

    Re: DBCC FREEPROCCACHE e restart del server

    Andiamo avanti con la solita query bastarda...
    continua a piantarsi...

    Ora son passato a cercar di capire COME la curo (lanciando DBCC FREEPROCCACHE) al cercar di capire PERCHE' si ammala.

    Col DBCC PROCCACHE i valori che ottengo sono:

    num proc buffs num proc buffs used num proc buffs active proc cache size proc cache used proc cache active Quando
    3877 3877 983 4241 4241 1347 Appena Entrato sul Server
    6317 6317 1340 6768 6768 1791 Dopo la prima prova col blocco
    2 2 2 0 0 0 Appena svuuotata
    634 634 126 657 657 149 dopo il lancio

    Citiamo dal BOL:

    Nella tabella seguente vengono descritte le colonne del set di risultati.

    Nome colonna Descrizione
    num proc buffs Numero delle possibili stored procedure che potrebbero essere disponibili nella cache delle procedure
    num proc buffs used Numero degli slot della cache che contengono stored procedure
    num proc buffs active Numero degli slot della cache che contengono stored procedure in esecuzione
    proc cache size Dimensioni totali della cache delle procedure
    proc cache used Quantità di cache delle procedure che contiene stored procedure
    proc cache active Quantità di cache delle procedure che contiene stored procedure in esecuzione

    Qualcuno ha qualche idea in merito?
    Ho preso sta maledetta e l'ho passata sotto tuning... ho seguito i consigli che mi sono stati forniti dal tool.
    La memoria e' scarica...
    La ram non va sotto stress....
    La rete e' fresca...
    L'I/O e' su un raid 5...

    IDEE????

    : ))
    Ciao
    Ale

     

    • Post Points: 5
  • 10-09-2007 23.03 In reply to

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

    Re: DBCC FREEPROCCACHE e restart del server

    Giusto per capire:

    1. la tua "select bastarda" è una stored procedure?
    2. se si, hai gia provato a marcarla con l'opzione WITH RECOMPILE nella definizione della procedura stessa, cosi sei sicuro che il piano di esecuzione sia sempre ricalcolato?
    3. i parametri della query (o i valori che essa usa se è una query ad-hoc non parametrica) o della sp sono esattamente IDENTICI sia quando va lenta che quando va veloce?
    4. quando è lento hai provato un a fare una query su sysprocesses per vedere se c'è qualche lock di mezzo?

     

    A presto!

    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: 20
  • 10-10-2007 8.54 In reply to

    Re: DBCC FREEPROCCACHE e restart del server

    Ciao Davidone!

    1. no... e' una select creata dinamicamente dentro a del codice compilato (che non posso toccare!)

    2. n. a.

    3. i parametri possono variare sia in numero che in qualita'... ma io applico gli stessi identici sia da QA che da applicativo.

    4. No... il SYSPROCESSES non l'ho controllato...
    Domani mattina lo faccio (tanto ormai sembra sistematico... anche se non riesco a riprodurlo!).

    Stay Tuned!

    Ciao
    Ale

    : )

    • Post Points: 5
  • 10-12-2007 11.35 In reply to

    Re: DBCC FREEPROCCACHE e restart del server

    Ho fatto una select secca su SYSPROCESSES sia prima che dopo aver lanciato il DBCC FREEPROCCACHE.

    Nel foglio XLS trovate l'output prima e dopo il lancio uno in dopo l'altro sullo stesso sheet.

    Non mi sembra pero' che ci siano differenze sostanziali.

    Esimio Presidente... cogli la palla al balzo (come disse il castratore di canguri!) e facci una mini survivor-guide su come si legge la sysprocesses e dove focalizzare subito la nostra attenzione!

    : )

    Ciao
    Ale

    • Post Points: 20
  • 10-12-2007 15.02 In reply to

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

    Re: DBCC FREEPROCCACHE e restart del server

    Ciao Ale

    io veramente dicevo di fare una query su sysprocesses quando la query è in esecuzione e sta mostrando il comportamento "lento". Durando addirittura 10 minuti hai il tempo per vedere (eseguando una query su sysprocesses, appunto) se la lentezza è dovuta a qualche waittype particolare.

    Una volta identificato il server process id (spid) legato alla query da analizzare guarda alla riga relativa a quello spid i valori waittime e lastwaittype. Se il waittime è molto alto (fai conto che questa colonna rappresenta il tempo di attesa che quella query sta subendo, espresso in ms, dovuto alla necessità di attendere la risorsa definita in lastwaittype) si puo cercare di capire come mai c'è un tempo di attesa anomalo sulla risorsa identificata.

    Per identificare lo spid che ti interessa, se non vuoi usare il profiler, puoi cercare sempre in sysprocesses i process id associati all'utente che sai che sta eseguendo la query (loginname), all'applicazione attraverso cui è stata lanciata la query (program_name), ed infine la macchina che la ne ha fatto richiesta di esecuzione (host_name)

    Buona ricerca Smile

    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 (9 items)
(C) 2007 User Group Italiano di SQL Server