Newsgroup: it.comp.software.database
Titolo: Log Tranzazioni e memoria

Salve a tutti
Ho un DB istallato su una macchina Win2000 e mi sono accorto che a fronte di
un DB di circa 50 e rotti MB ho un file di log di oltre 380 Mb. Stupidamente
non ho pensato a limitare il file di log. Ora mi ritrovo a dover cercare di
restringere sto elefante. Qualuno sa come posso fare?
Inoltre ho notato che tramite il Task Manager il servizio SQL mi puppa circa
650 Mb e oltre di memoria. E normale? E limitando il file dei log ridurrei
tale occupazione di memoria?
Grazie a tutti
--
DD

 ha scritto nel messaggio
news:pG%j9.5240$Eu.1...@twister1.libero.it...

Di che Database stai parlando?
SQLServer?
                            danilo

 SQLServer?
Si, stupidamente non l'ho indicato. Versione 2000
DD

 tale occupazione di memoria?
No, non c'entra niente... nel file di log ci sono i commandi che sono stati
dati al tuo DB da parte degli utenti (una specie di "diario")
Ciao,
Paulus
http://spazioweb.inwind.it/it_informatica
--------------------------------
Inviato via 
http://usenet.libero.it


Su questo punto ho pensato che si caricasse qualcosa di troppo in
memoria......e a fronte di un DB di 50 e rotti MB avere un carico in memoria
di piu di 600 mi ha fatto pensare che il file da oltre 380 MB di log
centrasse qualcosa.
In questi casi esiste un modo per tenere sotto controllo la memoria? O fare
in modo di limitargliela? O, ancora, e bene che se la tenga? Si puo fare una
stima della memoria necessaria perche giri in maniera ottimale?
Scusa ancora se rompo con tutte queste domande.....ma come ho detto prima
sono ancora agli inizi.
Grazie di tutto
DD

 sono ancora agli inizi.
se hai dubbi, il manuale online del database è ottimo.
se hai dubbi su una parola chiave, cercala prima lì!
(es. 'checkpoint')
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.netmeister.org/news/learn2quote.html

> > Che cosa intendi per checkpoint?
provo a dirla in modo "didattico":
quando il motore DB deve scrivere dei dati (per esempio durante un insert o
update) non lo fa direttamente sul file perché rallenterebbe troppo il suo
funzionamento... lo fa invece in memoria RAM. Questo viene chiamato
"cachare" (brutta espressione !!!), perché questo tipo di "memoria tampone"
viene chiamato "cache".
Al tempo stesso, ogni comando che viene scritto sul DB (sulla cache) viene
trascritto nel file di log, in modo che se hai un problema -come
interruzione di corrente-, al DB basta prendere i files dal disco, leggere
le altre cose che aveva messo in cache dal file di log e applicarle, in modo
da limitare le perdite al minimo possibile (questo processo di prendere i
files di dati e ri-eseguire quello che è memorizzato nel file di log viene
chiamato recovery).
Ogni tanto (per esempio quando gli gli serve altra memoria RAM o quando è da
troppo tempo che non si scrive su disco) il motore DB trasferisce ai files
di dati tutto quello che aveva "cachato" in RAM al disco... questo processo
viene chiamato checkpoint...
Tu sei sicuro che al momento del checkpoint il DB è in uno stato di
consistenza (cioè sui files hai la situazione "al ultimo istante"), in tutti
gli altri momenti la situazione del DB è un "incrocio" tra i files dove
memorizza i dati e la memoria cache che si trova in ram.
Il database di produzione è quello dove si lavora, quello di sviluppo è
quello dove si fanno le prove (come definizione fa schiffo, ma funziona).
Sono d'accordo con punkarusso: usa l'help in linea di SQL Server; è in
assoluto la miglior utility di tutte quelle che ti vegono date con SQL
Server :)))))


Ti ringrazio per la spiegazione.
Andando avanti nel mio apprendistato ho dato un'occhiata alle proprieta del
DB constatando effettivamente la possibilità di personalizzare il
quantitativo di memoria e il numero di processori utilizzati.
A parte il fatto che ho lasciato le impostazioni su due processori e la
memoria su un quantitativo dinamico. La domanda e questa. Come mai a fronte
di un DB di 50MB mi trovo un'occupazione di memoria del servizio SQL di
circa 650 MB? Voglio dire, è normale? O è un po' troppo secondo voi?
Il DB viene utilizzato per fare degli inserimenti e aggiornamenti ma è
contemporaneamente visto on line.
Ri grazie a tutti.
DD
PS. Mille scuse se continuo a rompere ma.....

 circa 650 MB?
Non c'entra niente la dimensione del DB con la quantità di memoria usata...
sono due cose completamente diverse.
Il mio consiglio è di non modificare questo parametro, soprattutto se su
quel server non girano altre cose oppure girano ma non hai problemi di
performance...
Di solito si limita l'utilizzo di memoria in quei casi dove il server deve
eseguire anche altri server (per esempio exchange).
Se lo limiti, stranamente per un prodotto MS, fai quello che dice la stessa
parola: limiti :))


 è contemporaneamente visto on line.
eh! è come l'italiano medio:
se gli dici 'prendi quello che ti serve, è gratis!'
arriva con la cariola e tutti i parenti.
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://php.dopoil.com/faq.php