Newsgroup: it.comp.lang.visual-basic
Titolo: [OT] Record eliminati di sql server

Mi č venuto un dubbio...
quando vengono cancellati dei record in sqlserver,
essi vengono marcati come annullati o qualcosa di simile (penso come faccia
Access)
o vengono definitivamente eliminati subito?
Mik

[*Mik*=
spud...@gmx.net
] ha scritto:

Direi la prima, ma che ce ne facciamo (a parte backup e/o log)?
Non sono recuperabili. Quindi vale anche la seconda.

 Non sono recuperabili. Quindi vale anche la seconda.
Ma scusa se apri un db access e fa un casino di delete e insert
nel giro di un quarto d'ora diventa di dimensioni spropositate
fino a quando non lo compatti; invece con sqlserver non ho mai dovuto
compattare
niente...
Mi sbaglio?

[*Mik*=
spud...@gmx.net
] ha scritto:

Sei impazzito?
SQL Server (se comprendiamo i LDF oltre ai MDF) ingigantisce in modo
spropositato.
Ben più (e non è poco) di un Access.
Fermo restando (ma questo poco c'azzecca) che è di suo più grande, a parità
di dati, di un MDB.

 parità di dati, di un MDB.
beh ma l'ldf tiene via tutti i log delle varie operazioni,
ma l'mdf non ingrossa più di tanto mi sembra...
però oggi ho mangiato un po' pesante e non vorrei sparare troppe cazzate!
Mik

 cazzate!
vale anche per me. ;-)

Se guardi in enterprise manager di sql server hai la voce "compatta";
inoltre tra le proprietà del database puoi settare la compattazione
automatica (in sql 2000, non ricordo se c'era anche nelle versioni
precedenti) => magari è settato e quindi non te ne sei accorto.

Ben piů (e non č poco) di un Access.
Lasciamo perdere, con Access non configuri un accidente ;-)
-- 
ciao, hal

 Lasciamo perdere, con Access non configuri un accidente ;-)
Mai detto che si possa configurare.
Solo detto che s'allarga, ma un po' meno (complessivamente) di SQL Server.
;-)

 precedenti) => magari č settato e quindi non te ne sei accorto.
Ho appena controllato e non č ceccata la compattazioen automatica!
MIk

;-)
Vedi sopra.
-- 
ciao, hal

 Credo il default proposto: Automatico a botte di 1 (o 2?) Mb
[SNIP]
Come gia' evidenziato dal buon hal, questo puo' andar bene su dabase piccoli
o comunque di consultazione ma con poca attivita' di aggiornamento dati;
altrimenti sarebbe sempre meglio partire con una dimensione iniziale sensata
e impostare le estensioni a blocchi piu' grandi (noi preferiamo non
l'opzione in percentuale ma quella fissa... 16-32 o piu' mega a botta
secondo il DB)
Fai lavorare meno sia il software che l'hardware e limiti pure la
frammentazione del disco...
Anche lasciando il default comunque il file non si dimensiona ogni pochi Kb
come in Access, ed e' probabilmente anche per questo che ha la sensazione di
non vedere troppi cambiamenti
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

proprio in questo periodo, ogni giorno, in metropolitana (linea gialla,
Milano), mi sto leggendo l'edizione economica di "SQL Server - Guida
pratica". Non è malaccio, cmq, arrivo al dunque......
i record non vengono fisicamente cancellati automaticamente, devi essere tu
a dirlo con comandi sql tipo SHRINK DATABASE e simili......il motivo? beh, è
presto detto.....
immagina una tabella con 50.000 record, e un sql che li cancella tutti. il
motore dovrebbe "compattare" e rimpicciolire il db. Questo potrebbe
provocare (anzi, togli il dovrebbe) un sovraccarico delle risorse sul
server. Questo overhead è maggiore tanto complessa è la struttura del db
(immagina integrità referenziale, trigger che vanno in cascata).....
sqlserver, per evitare di sprecare risorse, non fa nulla di più.......li
marca come eliminati, ma non recupera spazio....
è lo stesso discorso che fa per l'ingrandimento del db. solo che
l'ingrandimento è obbligatorio, dato che altrimenti non saprebbero dove
mettere i dati.....tra l'altro, il manuale spiega bene come calcolare bene i
parametri con cui impostare il criterio di crescita del db (in percentuale
oppure in Mb, e così via)......
tutto questo proprio per evitare che il disco server frulli inutilmente
quando magari ci sono altri utenti connessi.....
basta come spiegazione?
:-))
good coding!!!
-- 
Damiani Liborio Igor
ig...@igordamiani.it
 - 
soft...@igordamiani.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

[CUT]
Come al solito impeccabile!
Grazie..
MIk