Con SQL 2000 sono sempre incappato nel problema dell'incremento automatico delle dimensioni del file di log del database, infatti per impostazione predefinita il file LDF cresce continuamente di dimensioni, fino a raggiungere le dimensioni massime impostate nel database, o peggio, fino a terminare lo spazio su disco.
Questa situazione si crea semplicemente perchè il file LDF tiene traccia di tutte le transazioni effettuate, anche se correttamente committate.
Per risolvere questo problema è sufficiente lanciare il comando:
DBCC BACKUP LOG [database name] WITH TRUNCATE_ONLY
semplice, immediato e soprattutto, risolutivo.
via: merlinox.tumblr.com
Appunti e promemoria su... beh... tutto quello che mi serve e che forse un giorno servirà anche a te...
Visualizzazione post con etichetta sql. Mostra tutti i post
Visualizzazione post con etichetta sql. Mostra tutti i post
giovedì 31 luglio 2008
venerdì 8 febbraio 2008
Reindicizzare un intero database su SQL server
Chi lavora su applicazioni che lavorano su database SQL Server di dimensioni considerevoli individua abbastanza presto che uno dei fattori critici dell'applicazione è il tempo "speso" ad accedere al database e che il tempo di risposta delle singole query può cambiare in maniera sostanziale se gli indici vengono creati accuratamente.
Dopo la creazione del DB e degli indici, questi tendono a deteriorarsi con il tempo, perdendo prestazioni durante l'accesso.
Un modo pratico per ripristinare le prestazioni degli indici è lanciare su ogni database, magari schedulandolo come attività notturna, uno script simile a questo:
Dopo la creazione del DB e degli indici, questi tendono a deteriorarsi con il tempo, perdendo prestazioni durante l'accesso.
Un modo pratico per ripristinare le prestazioni degli indici è lanciare su ogni database, magari schedulandolo come attività notturna, uno script simile a questo:
use Database;
GO
exec sp_msforeachtable 'dbcc dbreindex ("?") with no_infomsgs';
GO
mercoledì 30 maggio 2007
MOD rewriting e URL rewriting
Per mantenere la compatibilità con i motori di ricerca gli url dei "contenuti" devono essere statici e parlanti...
beh, questo normalmente non è un problema, ma si eclude la possibilità di registrare gli interi contenuti su database, perdendo tutti i vantaggi garantiti da questa tecnica. (transazioni e backup...)
http://urlrewriter.net/
con questo si dovrebbe (non ho ancora avuto modo di provarlo) mantenere la compatibilità con i motori di ricerca e consentire di slegarsi completamente dal file system...
beh, questo normalmente non è un problema, ma si eclude la possibilità di registrare gli interi contenuti su database, perdendo tutti i vantaggi garantiti da questa tecnica. (transazioni e backup...)
http://urlrewriter.net/
con questo si dovrebbe (non ho ancora avuto modo di provarlo) mantenere la compatibilità con i motori di ricerca e consentire di slegarsi completamente dal file system...
estrazione dati nidificati da SQL
Problema:
Estrarre da una tabella le righe corrispondenti al massimo del valore di un campo della tabella del gruppo indentificato da un campo.
Eg.
Tabella:
Id -- Gruppo -- Val
id1 G1 2
id2 G1 1
id3 G1 0
id4 G2 0
id5 G3 3
id6 G3 2
Desiderata:
Id -- Gruppo -- Val
id1 G1 2
id4 G2 0
id5 G3 3
Soluzione con query nidificata:
SELECT Id, Gruppo,Val
FROM tabella
WHERE tabella.Val IN
(SELECT MAX(Val) AS Expr1
FROM tabella AS aliasTabella
WHERE (tabella.Id= aliasTabella.Id)
GROUP BY Gruppo)) ;
Estrarre da una tabella le righe corrispondenti al massimo del valore di un campo della tabella del gruppo indentificato da un campo.
Eg.
Tabella:
Id -- Gruppo -- Val
id1 G1 2
id2 G1 1
id3 G1 0
id4 G2 0
id5 G3 3
id6 G3 2
Desiderata:
Id -- Gruppo -- Val
id1 G1 2
id4 G2 0
id5 G3 3
Soluzione con query nidificata:
SELECT Id, Gruppo,Val
FROM tabella
WHERE tabella.Val IN
(SELECT MAX(Val) AS Expr1
FROM tabella AS aliasTabella
WHERE (tabella.Id= aliasTabella.Id)
GROUP BY Gruppo)) ;
Iscriviti a:
Post (Atom)