<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.ugiss.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it"><title type="html">siquellando</title><subtitle type="html">...scoperte e considerazioni Sql di uno &lt;i&gt;sviluppista &lt;/i&gt;&lt;br /&gt;(un po&amp;#39; sviluppatore e un po&amp;#39; sistemista)</subtitle><id>http://community.ugiss.org/blogs/orsocurioso/atom.aspx</id><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/default.aspx" /><link rel="self" type="application/atom+xml" href="http://community.ugiss.org/blogs/orsocurioso/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20611.960">Community Server</generator><updated>2007-09-23T15.04.00Z</updated><entry><title>Piccoli cambiamenti al backup-restore in Sql2008</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/08/23/piccoli-cambiamenti-al-backup-restore-in-sql2008.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/08/23/piccoli-cambiamenti-al-backup-restore-in-sql2008.aspx</id><published>2008-08-23T14.26.00Z</published><updated>2008-08-23T14.26.00Z</updated><content type="html">&lt;p&gt;Oltre alle grosse, e piu&amp;#39; volte citate,&amp;nbsp;novita&amp;#39; che Sql2008 porta al backup (compressione, encryption) ci sono altri piccoli cambiamenti che puo&amp;#39; essere utile segnalare.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Una prima modifica la troviamo nell&amp;#39;istruzione&amp;nbsp;BACKUP LOG da cui e&amp;#39; stata&amp;nbsp;&lt;em&gt;&amp;quot;finalmente&amp;quot;&lt;/em&gt;&amp;nbsp; eliminata&amp;nbsp;l&amp;#39;opzione TRUNCATE_ONLY, il cui uso era gia&amp;#39;&amp;nbsp;deprecato in Sql2005.&lt;/p&gt;
&lt;p&gt;Infatti ora, se nel backup viene specificata l&amp;#39;opzione TRUNCATE_ONLY, Sql Server risponde con&amp;nbsp;il seguente errore:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://community.ugiss.org/blogs/orsocurioso/TruncateOnly.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Per cui adesso (come gia&amp;#39; bisognava fare in Sql2005)&amp;nbsp;per &amp;nbsp;effettuare un truncate del log senza backupparlo (ma siamo sicuri di cio&amp;#39; che stiamo facendo ?? &lt;img src="http://community.ugiss.org/emoticons/emotion-18.gif" alt="Huh?" /&gt; ) dobbiamo portare il recovery model a SIMPLE, e poi eventualmente riportarlo a FULL.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Proseguiamo...&lt;/p&gt;
&lt;p&gt;Gli amanti dell&amp;#39;interfaccia grafica&amp;nbsp;adesso trovano, all&amp;#39;interno&amp;nbsp;della finestra di back up, l&amp;#39;opzione per effettuare il COPY_ONLY, ovvero per effettuare un backup del database senza interrompere la catena dei log files di restore.&lt;/p&gt;
&lt;p&gt;(per chi si fosse perso le puntate sul COPY_ONLY alcune&amp;nbsp;info su questo argomento le trovate qui &lt;a href="http://community.ugiss.org/blogs/sgainz/archive/2007/07/25/a-proposito-di-backup-e-restore.aspx"&gt;http://community.ugiss.org/blogs/sgainz/archive/2007/07/25/a-proposito-di-backup-e-restore.aspx&lt;/a&gt;&amp;nbsp;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;L&amp;#39;opzione la trovate nel riquadro rosso di questo screen shot&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:704px;HEIGHT:632px;" height="632" src="http://community.ugiss.org/blogs/orsocurioso/CopyOnly2.JPG" width="704" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;E, sempre all&amp;#39;interno del SqlServer Management Studio, tra le opzioni del backup e&amp;#39; stata aggiunta quella relativa al Tail-Log backup, ovvero al backup del Transaction Log lasciando il database in stato di recovery.&lt;/p&gt;
&lt;p&gt;L&amp;#39;opzione la vedete, sullo screen shot che segue, nel riquadro rosso, &lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:704px;HEIGHT:632px;" height="632" src="http://community.ugiss.org/blogs/orsocurioso/TailLog2.JPG" width="704" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;E con queste ulteriori aggiunte neanche i fanatici del &lt;em&gt;tutto guidato&lt;/em&gt; hanno piu&amp;#39; scampo dal lavorare bene &lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=4438" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Backup" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Backup/default.aspx" /><category term="SQL2008" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/SQL2008/default.aspx" /></entry><entry><title>Elenco build Sql2005</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/07/17/elenco-build-sql2005.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/07/17/elenco-build-sql2005.aspx</id><published>2008-07-17T07.16.00Z</published><updated>2008-07-17T07.16.00Z</updated><content type="html">&lt;p&gt;Segnalo che sul &amp;quot;&lt;em&gt;sempre ottimo&lt;/em&gt;&amp;quot; sito &lt;a href="http://www.sqlservercentral.com/"&gt;http://www.sqlservercentral.com/&lt;/a&gt;&amp;nbsp;ieri e&amp;#39; stato pubblicato un elenco delle build di Sql 2005, una di quelle cose che, quando ne ho bisogno, non ricordo mai dove trovare &lt;img src="http://community.ugiss.org/emoticons/emotion-6.gif" alt="Sad" /&gt;&lt;/p&gt;
&lt;p&gt;L&amp;#39;elenco lo trovate qui: &lt;a href="http://www.sqlservercentral.com/articles/Administration/2960/"&gt;http://www.sqlservercentral.com/articles/Administration/2960/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=4345" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Sql2005" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Sql2005/default.aspx" /><category term="Build version" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Build+version/default.aspx" /></entry><entry><title>Feature "SAS like" in Sql2008</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/06/26/feature-quot-sas-like-quot-in-sql2008.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/06/26/feature-quot-sas-like-quot-in-sql2008.aspx</id><published>2008-06-26T11.58.00Z</published><updated>2008-06-26T11.58.00Z</updated><content type="html">&lt;p&gt;Buone news per&amp;nbsp;i Sassisti in ascolto che lavorano in SqlServer: nella versione Sql2008 saranno presenti due funzionalita&amp;#39; che ricordano molto da vicino cio&amp;#39; che si ha (&lt;em&gt;da illore tempo&lt;/em&gt;) a disposizione in SAS.&lt;/p&gt;
&lt;p&gt;Mi riferisco allo statement &lt;strong&gt;MERGE&lt;/strong&gt; che consente, in un singola operazione atomica, di effettuare Insert, Delete ed Update su una tabella &lt;em&gt;target&lt;/em&gt; sulla base dei dati presenti in una tabella &lt;em&gt;source&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;E&amp;#39; qualcosa che consente facilmente in Sql di effettuare quelle operazioni di aggiornamento che si fanno in un data step SAS &amp;nbsp;con lo statement merge [stesso nome, appunto &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;] e l&amp;#39;opzione IN dei dataset. &lt;/p&gt;
&lt;p&gt;Ecco un esempio di come aggiornare le informazioni presenti&amp;nbsp;nella tabella Attivita&amp;nbsp;sulla base di quelle presenti nella tabella UpdAttivita&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;/* setup test */&lt;br /&gt;use tempdb&lt;br /&gt;go&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;create table dbo.Attivita (Id int, Label varchar(20),Durata int);&lt;br /&gt;go&lt;br /&gt;create table dbo.UpdAttivita (Id int, Label varchar(20),Durata int);&lt;br /&gt;go &lt;/p&gt;
&lt;p&gt;insert into dbo.Attivita values (1,&amp;#39;Alfa&amp;#39;,120),(2,&amp;#39;Beta&amp;#39;,200),(3,&amp;#39;Gamma&amp;#39;,80);&lt;/p&gt;
&lt;p&gt;insert into dbo.UpdAttivita values (4,&amp;#39;Echo&amp;#39;,10),(2,&amp;#39;Beta&amp;#39;,210),(3,&amp;#39;GammaNew&amp;#39;,801);&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;/* applico le variazioni */&lt;br /&gt;merge into dbo.Attivita AS TGT&lt;br /&gt;&amp;nbsp;using dbo.UpdAttivita AS SRC&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;on TGT.id = SRC.id&lt;/p&gt;
&lt;p&gt;when MATCHED then&lt;/p&gt;
&lt;p&gt;&amp;nbsp; update set&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TGT.label = SRC.label,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TGT.durata = SRC.durata&lt;/p&gt;
&lt;p&gt;when NOT MATCHED then &lt;/p&gt;
&lt;p&gt;&amp;nbsp; insert (id, label, durata)&lt;br /&gt;&amp;nbsp; values (SRC.id, SRC.label, SRC.durata)&lt;/p&gt;
&lt;p&gt;when SOURCE NOT MATCHED then&lt;br /&gt;&amp;nbsp;delete&lt;br /&gt;;&lt;/p&gt;
&lt;p&gt;/* verifica */&lt;br /&gt;select * from dbo.Attivita;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;Per i curiosi in SAS, &lt;em&gt;in questo caso&lt;/em&gt;,&amp;nbsp;bastava scrivere:&lt;/p&gt;&lt;b&gt;&lt;font face="Courier New" color="#000080" size="2"&gt;
&lt;blockquote&gt;
&lt;p&gt;data&lt;/b&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Attivita;&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;merge&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Attivita (in=a) UpdAttivita(in=b);&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;by&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; Id;&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; a and not b &lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;then&lt;/font&gt;&lt;font face="Courier New" size="2"&gt; &lt;/font&gt;&lt;font face="Courier New" color="#0000ff" size="2"&gt;delete&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="Courier New" color="#000080" size="2"&gt;
&lt;p&gt;run&lt;/b&gt;&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;
&lt;p&gt;&amp;nbsp;Che in effetti e&amp;#39; un po&amp;#39; piu&amp;#39; compatto &lt;img src="http://community.ugiss.org/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;L&amp;#39;altra funzionalita&amp;#39; introdotta e&amp;#39; quella dei &lt;strong&gt;GROUPING SETS&lt;/strong&gt; che ci fanno ritrovare praticamente &amp;quot;pari pari&amp;quot; la Proc Summary all&amp;#39;interno di SqlServer.&lt;/p&gt;
&lt;p&gt;Appoggiandosi a tale funzionalita&amp;#39; possiamo ottenere, con un unica query, piu&amp;#39; raggruppamenti, uno per ogni combinazione dei campi indicati nell&amp;#39;istruzione&amp;nbsp; Grouping Sets del Group By che diviene l&amp;#39;equivalente dell&amp;#39;istruzione CLASS della Proc Summary.&lt;/p&gt;
&lt;p&gt;Ad esempio se volessimo, in un colpo solo,&amp;nbsp;la&amp;nbsp;somma delle&amp;nbsp;vendite della tabella&amp;nbsp;Vendite sia per IdProdotto che per PuntoVendita insieme alle somme per ogni combinazione di PuntoVendita e IdProdotto ed anche il Totalone con i Grouping Sets possiamo scrivere: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;use tempdb&lt;br /&gt;go&lt;/p&gt;
&lt;p&gt;-- creazione tabella di esempio&lt;br /&gt;if OBJECT_ID (&amp;#39;dbo.Vendite&amp;#39;) is not null drop table dbo.Vendite;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;create table dbo.Vendite (&lt;br /&gt;&amp;nbsp;PuntoVendita&amp;nbsp;varchar(20),&lt;br /&gt;&amp;nbsp;IdProdotto&amp;nbsp;&amp;nbsp;int,&lt;br /&gt;&amp;nbsp;Quantita&amp;nbsp;&amp;nbsp;int&lt;br /&gt;&amp;nbsp;);&lt;br /&gt;go&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;-- inserimento dati esempio&lt;br /&gt;insert into dbo.Vendite (PuntoVendita,IdProdotto,Quantita)&lt;br /&gt;Values &lt;br /&gt;(&amp;#39;Milano&amp;#39;,1,120),&lt;br /&gt;(&amp;#39;Milano&amp;#39;,2,124),&lt;br /&gt;(&amp;#39;Milano&amp;#39;,3,210),&lt;br /&gt;(&amp;#39;Roma&amp;#39;,1,300),&lt;br /&gt;(&amp;#39;Roma&amp;#39;,2,155),&lt;br /&gt;(&amp;#39;Roma&amp;#39;,3,38),&lt;br /&gt;(&amp;#39;Napoli&amp;#39;,2,35)&lt;br /&gt;;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;/* calcolo i vari totali */&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;br /&gt;select&amp;nbsp; PuntoVendita, IdProdotto, SUM(Quantita) as Quantita&lt;br /&gt;&amp;nbsp;from dbo.Vendite &lt;br /&gt;&amp;nbsp;group by &lt;br /&gt;&amp;nbsp;GROUPING Sets( &lt;br /&gt;&amp;nbsp;(),&lt;br /&gt;&amp;nbsp;(PuntoVendita ),&lt;br /&gt;&amp;nbsp;(IdProdotto),&lt;br /&gt;&amp;nbsp;(PuntoVendita,IdProdotto )&lt;br /&gt;&amp;nbsp;)&lt;br /&gt;&amp;nbsp;order by PuntoVendita , IdProdotto &lt;br /&gt;&amp;nbsp;;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Per gli interessati l&amp;#39;equivalente SAS sarebbe:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;proc Summary data = Vendite print sum;&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;var Quantita;&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;class PuntoVendita&amp;nbsp; IdProdotto ;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;run;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Mi piacciono, si mi piacciono veramente molto queste nuove possibilita&amp;#39; di Sql2008 &lt;img src="http://community.ugiss.org/emoticons/emotion-46.gif" alt="Drinks" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=4211" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="TSql" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/TSql/default.aspx" /><category term="SAS" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/SAS/default.aspx" /></entry><entry><title>Virtual PC che non appare</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/05/13/virtual-pc-che-non-appare.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/05/13/virtual-pc-che-non-appare.aspx</id><published>2008-05-13T04.50.00Z</published><updated>2008-05-13T04.50.00Z</updated><content type="html">&lt;p&gt;Ieri ho litigato con Virtual PC (versione 6.0) che, senza una ragione apparente, non presentava piu&amp;#39; la finestra di console: l&amp;#39;icona stava &amp;quot;comodamente&amp;quot; funzionante nella system tray, ma se cliccavo due volte&amp;nbsp;o chiedevo di vedere la console...&amp;nbsp;&lt;em&gt;Nisba&lt;/em&gt; &lt;img src="http://community.ugiss.org/emoticons/emotion-6.gif" alt="Sad" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Roba da non crederci!!&lt;/p&gt;
&lt;p&gt;Dopo un po&amp;#39; di fatica (e la solita mezz&amp;#39;ora buttata)&amp;nbsp;con santo Google la soluzione mi e&amp;#39; stata fornita da questo post &lt;a href="http://marcellotonarelli.wordpress.com/2007/06/02/show-microsoft-virtual-pc-2007-console/"&gt;http://marcellotonarelli.wordpress.com/2007/06/02/show-microsoft-virtual-pc-2007-console/&lt;/a&gt;&amp;nbsp;di Marcello Tonarelli (GRAZIE).&lt;/p&gt;
&lt;p&gt;Pari pari dal suo blog riporto la soluzione al fastidioso problema:&lt;/p&gt;
&lt;p&gt;Dare un occhio al file di configurazione&lt;/p&gt;
&lt;p&gt;C:\Documents and Settings\__Name_Of_Your_Windows_Account__\Application\Data\Microsoft\Virtual PC\Options.xml&lt;/p&gt;
&lt;p&gt;e verificare che i valori delle dimensioni e della posizione per la sezione &amp;lt;console&amp;gt; &amp;quot;abbiano senso&amp;quot; (io mi ritrovavo la left e right position con valori stellari invece di un sano 0).&lt;/p&gt;
&lt;p&gt;Buoni valori sono ad esempio:&lt;/p&gt;
&lt;p&gt;&amp;lt;console&amp;gt;&lt;br /&gt;&amp;lt;height type=”integer”&amp;gt;575&amp;lt;/height&amp;gt;&lt;br /&gt;&amp;lt;left_position type=”integer”&amp;gt;0&amp;lt;/left_position&amp;gt;&lt;br /&gt;&amp;lt;top_position type=”integer”&amp;gt;0&amp;lt;/top_position&amp;gt;&lt;br /&gt;&amp;lt;visible type=”boolean”&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;&amp;lt;width type=”integer”&amp;gt;359&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;lt;/console&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Morale (la solita):&lt;/p&gt;
&lt;p&gt;in rete&amp;nbsp;c&amp;#39;e&amp;#39; un mucchio di gente che ti da una mano e ci consente di sopravvivere con le bizze &amp;nbsp;del software &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=4060" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Virtual PC" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Virtual+PC/default.aspx" /></entry><entry><title>Nested Transition ... attenzione, non ci sono</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/04/30/nested-transition-attenzione-non-ci-sono.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/04/30/nested-transition-attenzione-non-ci-sono.aspx</id><published>2008-04-30T14.28.00Z</published><updated>2008-04-30T14.28.00Z</updated><content type="html">&lt;p&gt;In questi giorni parlando con vari utenti ho realizzato che, a volte, c&amp;#39;e&amp;#39; un po&amp;#39; di confusione in merito alla possibilita&amp;#39; di avere transazioni annidate in Sql Server.&lt;/p&gt;
&lt;p&gt;Forse vale la pena di fare un po&amp;#39; di chiarezza: &lt;u&gt;SqlServer NON supporta &amp;quot;Transazioni Annidate&amp;quot;&lt;/u&gt;. &lt;/p&gt;
&lt;p&gt;In altre parole per ciascuna connessione puo&amp;#39; esistere solo una transazione attiva.&lt;/p&gt;
&lt;p&gt;E il&amp;nbsp;fatto che sia possibile (almeno sintatticamente) sottomettere piu&amp;#39; statement BEGIN TRANSACTION complica e confonde le cose &lt;img src="http://community.ugiss.org/emoticons/emotion-18.gif" alt="Huh?" /&gt;&lt;/p&gt;
&lt;p&gt;In realta&amp;#39; ogni volta che viene sottomesso un BEGIN TRAN SqlServer semplicemente incrementa un contatore interno il cui valore e&amp;#39; recuperabile con una select sulla funzione @@trancount.&lt;/p&gt;
&lt;p&gt;Ad ogni commit il valore di @@trancount diminuisce di un unita&amp;#39; e solo l&amp;#39;ultimo commit (che riporta @@trancount a zero) committa realmente la transazione.&lt;/p&gt;
&lt;p&gt;In compenso qualunque rollback provoca l&amp;#39;annullamento di tutte le operazioni a partire dal primo begin tran (ovvero viene annullata&amp;nbsp;la transazione piu&amp;#39; esterna).&lt;/p&gt;
&lt;p&gt;Pertanto sottomettendo il seguente codice:&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;blockquote&gt;
&lt;p&gt;begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;tran&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;insert&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; Test &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;values&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;tran&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;insert&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; Test &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;values&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;2&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;font color="#008000" size="2"&gt;- rolback di tutto (anche l&amp;#39;insert col valore 1)&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;rollback&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;-- questo commit da errore: la transazione e&amp;#39; chiusa&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;commit&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;
&lt;p&gt;Nella tabella Test non verra&amp;#39; inserito alcun valore, in quanto il primo rollback cancella tutte le attivita&amp;#39; iniziate con la transazione piu&amp;#39; esterna.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Inoltre, per&amp;nbsp;committare&amp;nbsp;davvero, bisogna prestare attenzione a sottomettere un numero di COMMIT&amp;nbsp;uguale al&amp;nbsp;numero di BEGIN TRAN&amp;nbsp; (@@trancount)&amp;nbsp;altrimenti si rischia di lasciare aperta la transazione con tutti i pericoli di lock che seguono.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Attenzione che&amp;nbsp;ci sono situazioni (ad esempio se l&amp;#39;utente ha dato un cancel)&amp;nbsp;in cui,&amp;nbsp;anche se viene generato un errore, non viene chiusa la transazione &lt;img src="http://community.ugiss.org/emoticons/emotion-3.gif" alt="Surprise" /&gt;&amp;nbsp; Pertanto e&amp;#39; buona norma verificare se ci sono transazioni attive prima di risottomettere nuovamente un BEGIN TRAN e trovarsi con qualche&amp;nbsp;&amp;quot;&lt;em&gt;parentesi non chiusa&lt;/em&gt;&amp;quot; &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=4002" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="@@trancount" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/_40004000_trancount/default.aspx" /><category term="Nested transaction" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Nested+transaction/default.aspx" /></entry><entry><title>Sql 2008 le mie Top 5 +1</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/03/08/sql-2008-le-mie-top-5-1.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/03/08/sql-2008-le-mie-top-5-1.aspx</id><published>2008-03-08T15.41.00Z</published><updated>2008-03-08T15.41.00Z</updated><content type="html">&lt;p&gt;Mi accodo anch&amp;#39;io al post di &lt;a class="" href="http://community.ugiss.org/blogs/abenedetti/archive/2008/03/03/sql-2008-la-mia-classifica.aspx"&gt;Andrea&lt;/a&gt; e riporto la mia top five: forse non sono le novita&amp;#39; piu&amp;#39; eclatanti, ma ripensando alla mia attivita&amp;#39; in Sql degli ultimi tempi quelle che seguono sono le cose che piu&amp;#39; mi mancavano...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Statement MERGE&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Date &amp;amp; Time datatypes&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Table-Valued parameters&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Grouping Sets&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Transparent Data Encryption&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;e la 5 + 1 e&amp;#39; il Change Data Capture&lt;/p&gt;
&lt;p&gt;e la 6 +1 e&amp;#39; il Resource Governor ... e la 7 +1 ... &lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=3503" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author></entry><entry><title>Nuovo sito dedicato a Sql</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2008/01/23/nuovo-sito-dedicato-a-sql.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2008/01/23/nuovo-sito-dedicato-a-sql.aspx</id><published>2008-01-23T15.46.00Z</published><updated>2008-01-23T15.46.00Z</updated><content type="html">&lt;p&gt;Come comunicato nel blog della Delaney &lt;a href="http://sqlblog.com/blogs/kalen_delaney/archive/2008/01/19/did-you-know-a-terrific-new-community-website.aspx"&gt;http://sqlblog.com/blogs/kalen_delaney/archive/2008/01/19/did-you-know-a-terrific-new-community-website.aspx&lt;/a&gt;&amp;nbsp;in rete e&amp;#39; nato un nuovo sito dedicato a risorse tips &amp;amp; tricks per Sql Server.&lt;/p&gt;
&lt;p&gt;Il sito e&amp;#39; questo: &lt;a href="http://www.sqlcommunity.com/"&gt;http://www.sqlcommunity.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Da un primo occhio mi sembra valido, vediamo se col tempo manterra&amp;#39; le promesse. &lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=3121" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Sql Site" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Sql+Site/default.aspx" /></entry><entry><title>Anche il TRUNCATE e' loggato</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/11/22/anche-il-truncate-e-loggato.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/11/22/anche-il-truncate-e-loggato.aspx</id><published>2007-11-22T12.00.00Z</published><updated>2007-11-22T12.00.00Z</updated><content type="html">&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Spesso si sente dire che determinate operazioni (il truncate, per esempio)&amp;nbsp;NON vengono loggate in Sql...&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Tale affermazione e’ da prendere “con le pinze” in quanto e’ quasi sempre falsa. &lt;img src="http://community.ugiss.org/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Sql Server (almeno in recovery model FULL o BULK_LOGGED)&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;logga tutte le operazioni che vengono effettuate sui dati e sugli oggetti del database in quanto, altrimenti, non potrebbe, durante il restoring, ricostruire correttamente e completamente lo stato del database.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Se mai quello che cambia e’ il modo in cui l’operazione viene loggata, ovvero quali informazioni vengono registrate nel log.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Un esempio “esemplare” di cio’ ci e’ proprio fornito dall’istruzione TRUNCATE: in questo caso SQL non ha la necessita’ di loggare ogni singolo delete (che in effetti non viene compiuto), ma registrera’ la singola operazione &lt;em&gt;truncate &lt;/em&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;(che corrisponde al deallocamento delle pagine su cui sono memorizzati i dati della tabella).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Questo “minimum logging” consente comunque a Sql di garantire la transazionalita’&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;dell&amp;#39;esecuzione&amp;nbsp;e la possibilita&amp;#39; del restore. &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;span style="mso-spacerun:yes;"&gt;Pertanto&amp;nbsp;anche l&amp;#39;istruzione&lt;/span&gt; TRUNCATE&amp;nbsp;puo&amp;#39;&amp;nbsp;essere eseguita all’interno di una transazione e subisce la fase di Redo durante il&amp;nbsp;restore.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp; 
&lt;p class="MsoNormal" style="BACKGROUND:#f9faff;MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;"&gt;&lt;span style="mso-bidi-font-size:10.0pt;mso-bidi-font-family:Tahoma;mso-ansi-language:IT;"&gt;&lt;font face="Tahoma"&gt;Potete verificare facilmente entrambe le cose con il seguente codice.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;font color="#0000ff" size="2"&gt;USE&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; [master]&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Creazione db e tabelle di test &lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;IF&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;EXISTS&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SELECT&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;name&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FROM&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.databases&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;WHERE&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;name&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestTruncate&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;DROP&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; TestTruncate&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GO&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;CREATE&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ON&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;PRIMARY&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;NAME&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestTruncate&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILENAME&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;C:\Temp\TestTruncate.mdf&amp;#39;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 5MB &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;MAXSIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;UNLIMITED&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILEGROWTH&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1MB &lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;LOG&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ON&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;NAME&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestTruncate_log&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILENAME&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;C:\Temp\TestTruncate_log.ldf&amp;#39;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1MB &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;MAXSIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;UNLIMITED&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILEGROWTH&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1MB&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- setto il recovery model a FULL&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;alter&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;database&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;recovery&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Full&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;use&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt; TestTruncate&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;go&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Creo la tabella (con un campo identity) e inserisco dei record&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;create&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;table&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;ForTruncateExample&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;
&lt;p&gt;(&lt;/font&gt;&lt;font color="#000000" size="2"&gt;Codice &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;identity&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#000000" size="2"&gt;1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font color="#000000" size="2"&gt;1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;Valore &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;varchar&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;10&lt;/font&gt;&lt;font color="#808080" size="2"&gt;))&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;go&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;insert&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;values&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Alfa&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;insert&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;values&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Beta&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- truncate sotto transazione&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;tran&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;truncate&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;table&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;ForTruncateExample &lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;-- non ci sono piu&amp;#39; valori&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;ForTruncateExample&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;rollback&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;-- la truncate e&amp;#39; stata &amp;quot;rollbackata&amp;quot; !!&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;ForTruncateExample&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- verifico che anche l&amp;#39;identity continua a funzionare&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;insert&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;values&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Gamma&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;select&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- backup dati&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;backup&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;database&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;to&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;disk&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;c:\temp\TestTruncate_FULL01.bck&amp;#39;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;with&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;init&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Effettuo la truncate e poi backupp il log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;truncate&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;table&lt;/font&gt;&lt;font color="#000000" size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample &lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;backup&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;log&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;to&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;disk&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;c:\temp\TestTruncate_Log01.bck&amp;#39;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;with&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;init&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- restore Dati + Log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;use&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;master&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;go&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;restore&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;database&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;disk&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;c:\temp\TestTruncate_FULL01.bck&amp;#39;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;with&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;NORECOVERY&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;REPLACE&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;restore&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;log&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;disk&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;c:\temp\TestTruncate_Log01.bck&amp;#39;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;with&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;RECOVERY&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- la tabella e&amp;#39; troncata &lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font color="#000000" size="2"&gt; TestTruncate&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font color="#000000" size="2"&gt;ForTruncateExample&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt 36pt;mso-layout-grid-align:none;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-bidi-font-size:10.0pt;mso-no-proof:yes;"&gt;&lt;span style="COLOR:gray;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="mso-ansi-language:IT;"&gt;&lt;font color="#000000"&gt;&lt;font face="Tahoma"&gt;Ulteriori interessanti notizie sulla TRUNCATE (e sulle differenze con la DELETE) le trovate in questo articolo &lt;a href="http://www.sqlservercentral.com/links/335083/14505"&gt;http://www.sqlservercentral.com/links/335083/14505&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2660" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Transaction Log" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Transaction+Log/default.aspx" /><category term="Truncate" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Truncate/default.aspx" /></entry><entry><title>Un log che non cresce anche in FULL logging</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/22/un-log-che-non-cresce-anche-in-full-logging.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/22/un-log-che-non-cresce-anche-in-full-logging.aspx</id><published>2007-10-21T22.11.00Z</published><updated>2007-10-21T22.11.00Z</updated><content type="html">&lt;p&gt;Posto una particolarita&amp;#39; del comportamento del file di log la cui utilita&amp;#39; pratica rasenta lo zero, ma puo&amp;#39; essere utilizzata per vincere un caffe&amp;#39; facendo una scommessa&lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Domanda&lt;/u&gt;: e&amp;#39; possibile che un database in cui vengono effettuate numerose operazioni di scrittura, settato&amp;nbsp;in modalita&amp;#39;di recovery&amp;nbsp;FULL e per cui non venga mai effettuato un backup del log&amp;nbsp; non presenti un aumento delle&amp;nbsp;dimensioni del&amp;nbsp;suo file&amp;nbsp;di log&amp;nbsp; (o per lo meno esso non tenda ad &amp;quot;esplodere&amp;quot;) ?&lt;/p&gt;
&lt;p&gt;&lt;u&gt;Risposta&lt;/u&gt;: (&lt;em&gt;sorprendente&lt;/em&gt;):&amp;nbsp;&amp;nbsp;&lt;strong&gt;SI&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Capita in una condizione piuttosto particolare: se &lt;u&gt;non e&amp;#39; mai stato effettuato un backup completo dei dati&lt;/u&gt; da quando il database e&amp;#39; in recovery model FULL.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Questo e&amp;#39; dovuto al fatto che,&amp;nbsp;in realta&amp;#39;,&amp;nbsp; la condizione che il log &amp;quot;non cresca&amp;quot;, ovvero che recuperi&amp;nbsp;via via lo&amp;nbsp;spazio utilizzato dalle transazioni committate ed effettivamente&amp;nbsp;scritte nel database (truncation del log) non e&amp;#39; legata &amp;quot;esattamente&amp;quot; al modello di recovery &lt;img src="http://community.ugiss.org/emoticons/emotion-3.gif" alt="Surprise" /&gt; , ma piu&amp;#39; precisamente al fatto che SQL Server abbia dedotto che, per quel database, non viene mantenuta una sequenza di backup del log.&lt;/p&gt;
&lt;p&gt;In altre parole, se SQL capisce che non&amp;nbsp;abbiamo intenzione di utilizzare&amp;nbsp;il log nella nostra strategia di backup-restore, correttamente non si preoccupa (se ne frega...) &amp;nbsp;di salvare le transazioni gia&amp;#39; scritte nel database&amp;nbsp;(dato che non ci servono per il restore) e recupera appena puo&amp;#39;, con un bel truncate,&amp;nbsp;lo spazio&amp;nbsp;a loro allocato.&lt;/p&gt;
&lt;p&gt;Ok, e quando SQL puo&amp;#39; essere sicuro che non ci interessa il&amp;nbsp;restore dal log ??? Nei seguenti tre casi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Lo richiediamo espressamente scegliendo il modello di recovery SIMPLE&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Buttiamo via i dati del log con l&amp;#39;istruzione &lt;em&gt;backup log with no_log&lt;/em&gt; ( &lt;img src="http://community.ugiss.org/emoticons/emotion-6.gif" alt="Sad" /&gt; opzione&amp;nbsp;deprecata che non sara&amp;#39; piu&amp;#39; supportata nelle prossime versioni)&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;e, dulcis in fundo...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Non abbiamo MAI fatto un backup full dei dati. &lt;br /&gt;(se non abbiamo il back up di base come facciamo ad applicargli&amp;nbsp;il restore del log !!??!!)&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Eh, si, c&amp;#39;e&amp;#39; poco da fare SqlServer e&amp;#39; ... furbo !! &lt;img src="http://community.ugiss.org/emoticons/emotion-19.gif" alt="Party!!!" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PS: vi interessa sapere (in Sql2005) quali database sono in questa situazione (ovvero in&amp;nbsp;autotruncate mode)&amp;nbsp;?&amp;nbsp;&amp;nbsp;Lo vedete da questa select:&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;blockquote&gt;
&lt;p&gt;SELECT&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;db_name&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;database_id&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;FROM&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.database_recovery_status&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;WHERE&lt;/font&gt;&lt;font size="2"&gt; last_log_backup_lsn &lt;/font&gt;&lt;font color="#808080" size="2"&gt;is&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;NULL&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2312" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="RecoveryModel" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/RecoveryModel/default.aspx" /><category term="Backup" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Backup/default.aspx" /><category term="Truncation Log" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Truncation+Log/default.aspx" /></entry><entry><title>Script per recuperare le dimensioni dei log </title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/12/script-per-recuperare-le-dimensioni-dei-log.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/12/script-per-recuperare-le-dimensioni-dei-log.aspx</id><published>2007-10-12T20.15.00Z</published><updated>2007-10-12T20.15.00Z</updated><content type="html">&lt;p&gt;Ho modificato uno script pubblicato dalla Delaney per farmi restituire, per tutti i database,&amp;nbsp;le dimensioni dei dati, del&amp;nbsp;file di log, la sua % di occupazione ed il modello di recovery attivo.&lt;/p&gt;
&lt;p&gt;Lo script, valido per Sql2005,&amp;nbsp;e&amp;#39; veramente semplice, ma potrebbe comunque essere utile per cui eccolo.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;/* restituisce per tutti i database le dimensioni dei dati, del log la % di occupazione del log ed il modello di recovery */&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;rtrim&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; [Database Name]&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;pc3&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;cntr_value&lt;/font&gt;&lt;font color="#808080" size="2"&gt;/&lt;/font&gt;&lt;font size="2"&gt;1024.0 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; [Data Size (MB)]&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;cntr_value&lt;/font&gt;&lt;font color="#808080" size="2"&gt;/&lt;/font&gt;&lt;font size="2"&gt;1024.0 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; [Log Size (MB)]&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;cast&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;pc2&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;cntr_value&lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt;100.0&lt;/font&gt;&lt;font color="#808080" size="2"&gt;/&lt;/font&gt;&lt;font size="2"&gt;pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;cntr_value &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;dec&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;5&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt;2&lt;/font&gt;&lt;font color="#808080" size="2"&gt;))&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; [Log Space Used (%)]&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;db&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;recovery_model_desc&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;from&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.dm_os_performance_counters&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.dm_os_performance_counters&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; pc2&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.dm_os_performance_counters&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; pc3&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.databases&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; db&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;where&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; pc2&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; pc3&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name&lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; db&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;counter_name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Log file(s) Size (KB)&amp;#39;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; pc2&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;counter_name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Log file(s) Used Size (KB)&amp;#39;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; pc3&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;counter_name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;Data File(s) Size (KB)&amp;#39;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;cntr_value &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;font size="2"&gt; 0&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;order&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;by&lt;/font&gt;&lt;font size="2"&gt; pc1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;instance_name&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#808080" size="2"&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2178" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="RecoveryModel" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/RecoveryModel/default.aspx" /><category term="Transaction Log" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Transaction+Log/default.aspx" /></entry><entry><title>Il recovery model SIMPLE</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/07/il-recovery-model-simple.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/07/il-recovery-model-simple.aspx</id><published>2007-10-07T13.50.00Z</published><updated>2007-10-07T13.50.00Z</updated><content type="html">&lt;p&gt;In merito&amp;nbsp;al recovery model SIMPLE spesso girano dubbi e spesso capita di sentirsi chiedere cosa logga e se le sue dimensioni crescono &amp;nbsp;e perche&amp;#39; crescono &amp;nbsp;e quando si &amp;quot;sgonfia&amp;quot;&amp;nbsp;etc etc. Sperando di fare cosa utile in questo post provero&amp;#39; a fare un po&amp;#39; di chiarezza in merito...&lt;/p&gt;
&lt;p&gt;Innazitutto chiariamo che una modalita&amp;#39; di logging SIMPLE &lt;u&gt;non&lt;/u&gt; significa che non loggo ... Tutt&amp;#39;altro: SIMPLE significa solo che il transaction log non potra&amp;#39; essere utilizzato in fase di restore (infatti in questa modalita&amp;#39; non e&amp;#39; concesso il backup del log), ma che comunque viene assicurata tutta l&amp;#39;attivita&amp;#39; relativa alla gestione delle transazioni ... e ci mancherebbe che non lo facesse !!!!&amp;nbsp;&lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;
&lt;p&gt;Pertanto, anche in questa modalita&amp;#39;, il transaction log conterra&amp;#39; tutte le informazioni necessarie a Sql per poter gestire un eventuale roll back. Questo comporta che il file di log avra&amp;#39; una dimensione tale da memorizzare tutte le transazioni non ancora committate o, piu&amp;#39; precisamente, conterra&amp;#39; &lt;em&gt;&amp;quot;almeno&amp;quot;&lt;/em&gt; tutte le transazioni avvenute a partire dalla piu&amp;#39; vecchia presente ancora non committata. &lt;/p&gt;
&lt;p&gt;Per questa ragione, in presenza di transazioni &lt;em&gt;ricche&lt;/em&gt; di dati, anche in modalita&amp;#39; SIMPLE il file di log crescera&amp;#39; e potrebbe assumere dimensioni anche elevate.&lt;/p&gt;
&lt;p&gt;La differenza con le altre due modalita di recovery (FULL e BULK_INSERT) risiede nel fatto che, man mano che le transazioni vengono committate lo spazio a loro associato viene riutilizzato per memorizzare nuove transazioni.[&lt;em&gt;per dirla&lt;/em&gt; &lt;em&gt;piu&amp;#39; correttamente viene riutilizzato lo spazio&amp;nbsp;associato alle transazioni antecedenti alla piu&amp;#39; vecchia non committata&lt;/em&gt;]. Questo in FULL e BULK_INSERT avviene dopo il backup del log.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Nella modalita&amp;#39; SIMPLE periodicamente e con una frequenza legata alle dimensioni del file di log e al suo grado di riempimento, viene verificata&amp;nbsp;la posizione della transazione attiva piu&amp;#39; vecchia e viene marcato come riutilizzabile lo spazio del log allocato a tutte le transazioni antecedenti a questa. Tale attivita&amp;#39; prende il nome di Troncamento (truncation)&amp;nbsp;del log. &lt;/p&gt;
&lt;p&gt;Il Log truncation e&amp;#39; un attivita&amp;#39; di tipo logico: ad essa&amp;nbsp;non e&amp;#39; associata una riduzione fisica del log. &lt;/p&gt;
&lt;p&gt;La diminuzione del file di log&amp;nbsp;e&amp;#39; legata all&amp;#39;attivita&amp;#39; di Shrink che, se non e&amp;#39; abilitata tramite l&amp;#39;opzione AUTO_SHRINK ON (&lt;strong&gt;cosa da non fare MAI &lt;img src="http://community.ugiss.org/emoticons/emotion-12.gif" alt="Angry" /&gt;)&lt;/strong&gt;, avverra&amp;#39; solo dietro un preciso&amp;nbsp;comando (ad esempio&amp;nbsp;un DBCC &lt;font size="2"&gt;SHRINKDATABASE).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Detto cio&amp;#39; bisogna ricordare che il recovery model SIMPLE, visto che&amp;nbsp;non consente il recovery tramite log, andrebbe usato raramente: di fatto solo con DB in read only o di test... Averlo in produzione significa sapere che, in&amp;nbsp;caso di failure,&amp;nbsp;verranno perse tutte le transazioni intercorse dall&amp;#39;ultimo backup (full o differenziale) cosa che ritengo&amp;nbsp;sia accettabile in ben poche situazioni....&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Di seguito, per i curiosi, un po&amp;#39; di codice &amp;quot;pronto all&amp;#39;uso&amp;quot; per vedere la crescita del file di log in modalita&amp;#39; SIMPLE.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Ciao.&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;font color="#008000" size="2"&gt;
&lt;blockquote&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Test sul recovery model Simple&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;USE&lt;/font&gt;&lt;font size="2"&gt; [master]&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Creazione db e tabelle di test &lt;/p&gt;
&lt;p&gt;-- Il file di log e&amp;#39; VOLUTAMENTE inizializzato piccolo con bassa crescita &lt;/p&gt;
&lt;p&gt;-- per valutarne l&amp;#39;aumento di dimensioni&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;IF&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;EXISTS&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SELECT&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;name&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FROM&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.databases&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;WHERE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;name&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;DROP&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;font size="2"&gt; TestRecoverySimple&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GO&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;CREATE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;DATABASE&lt;/font&gt;&lt;font size="2"&gt; TestRecoverySimple &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ON&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;PRIMARY&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;
&lt;p&gt;(&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;NAME&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILENAME&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;C:\Temp\TestRecoverySimple.mdf&amp;#39;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 20480KB &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;MAXSIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;UNLIMITED&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILEGROWTH&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1MB &lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;LOG&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;ON&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;NAME&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple_log&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILENAME&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; N&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;C:\Temp\TestRecoverySimple_log.ldf&amp;#39;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;SIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1MB &lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;MAXSIZE&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;UNLIMITED&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;FILEGROWTH&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1MB&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- setto il recovery model a SIMPLE&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;alter&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;database&lt;/font&gt;&lt;font size="2"&gt; TestRecoverySimple &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;recovery&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Simple&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- disabilito l&amp;#39;auto shrink del DB(da non abilitare mai)&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;alter&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;database&lt;/font&gt;&lt;font size="2"&gt; TestRecoverySimple &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Auto_Shrink&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;OFF&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;--- Creo la tabella di test&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;use&lt;/font&gt;&lt;font size="2"&gt; TestRecoverySimple&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;create&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;table&lt;/font&gt;&lt;font size="2"&gt; BigInsert &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;Id &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;identity&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;Data &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;datetime&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;default&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;getdate&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(),&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;Valore &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;varchar&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;8000&lt;/font&gt;&lt;font color="#808080" size="2"&gt;));&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- creo la store procedure di inserimento record&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;create&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;procedure&lt;/font&gt;&lt;font size="2"&gt; fpsp_InsertBigRecord &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;@NumRecord &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; @Testo &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;char&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;))&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;as&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;declare&lt;/font&gt;&lt;font size="2"&gt; @Counter &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt; @Counter &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 1&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;while&lt;/font&gt;&lt;font size="2"&gt; @Counter &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;=&lt;/font&gt;&lt;font size="2"&gt; @NumRecord &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;Begin&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;insert&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;Valore&lt;/font&gt;&lt;font color="#808080" size="2"&gt;)&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;values&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font color="#ff00ff" size="2"&gt;replicate&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;@Testo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt;8000&lt;/font&gt;&lt;font color="#808080" size="2"&gt;));&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;set&lt;/font&gt;&lt;font size="2"&gt; @Counter &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; @Counter &lt;/font&gt;&lt;font color="#808080" size="2"&gt;+&lt;/font&gt;&lt;font size="2"&gt; 1&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;end&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- creo la Store procedures (per comodita) che presenta i dati sul log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;create&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;procedure&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;@InstanceName &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;varchar&lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;50&lt;/font&gt;&lt;font color="#808080" size="2"&gt;))&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;as&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;select&lt;/font&gt;&lt;font size="2"&gt; Instance_Name&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; Counter_name&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; cntr_value&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008000" size="2"&gt;sys.dm_os_performance_counters&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;where&lt;/font&gt;&lt;font size="2"&gt; instance_name&lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; cntr_type &lt;/font&gt;&lt;font color="#808080" size="2"&gt;=&lt;/font&gt;&lt;font size="2"&gt; 65792 &lt;/p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;and&lt;/font&gt;&lt;font size="2"&gt; Counter_Name &lt;/font&gt;&lt;font color="#808080" size="2"&gt;like&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;%Log%&amp;#39;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;GO&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- leggo i valori iniziali del log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- 1016 Kb (40% utilizzato), 0 Shrinks, 0 Growths, 1 Truncation&lt;/p&gt;
&lt;p&gt;--- effettuo degli insert&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_InsertBigRecord 2000&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;A&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;--Leggo le dimensioni del log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- NON e&amp;#39; aumentato: 1016 Kb (53% utilizzato), ma ha subito 75 Truncations&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-- Inserimenti sotto transazione&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;tran&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_InsertBigRecord 100&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;B&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Rileggo le dimensioni del log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- E&amp;#39; aumentato: 2040 Kb (73% utilizzato), 1 Growths e 2 truncation rispetto a prima (ora il valore e&amp;#39; 77)&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;commit&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- L&amp;#39;autoshrink e&amp;#39; disabilitato per cui Non scende la dimensione (2040 Kb)&lt;/p&gt;
&lt;p&gt;-- altri inserimenti senza transazioni attive&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_InsertBigRecord 2000&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;C&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- valuto di nuovo il log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Nessun inserimento da committare: Non ha avuto bisogno di aumentare (2040 Kb)&lt;/p&gt;
&lt;p&gt;-- e&amp;#39; solo aumentato il numero di truncation effettuate (ora 96)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-- effettuo uno shrink&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;DBCC&lt;/font&gt;&lt;font size="2"&gt; SHRINKDATABASE &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;TestRecoverySimple&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- valuto di nuovo il log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- le dimensioni sono scese:1016 Kb (36% utilizzato)&lt;/p&gt;
&lt;p&gt;-- nuovi inserimenti sotto transazione&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;tran&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_InsertBigRecord 200&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;D&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- valuto di nuovo il log&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- ha subito due grow (il valore ora e&amp;#39; 3) le dimensioni sono: 3064 Kb (83% usato) - log truncation = 123&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;commit&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- 3064 kb (72%)&lt;/p&gt;
&lt;p&gt;--effettuo lo shrink&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;DBCC&lt;/font&gt;&lt;font size="2"&gt; SHRINKDATABASE &lt;/font&gt;&lt;font color="#808080" size="2"&gt;(&lt;/font&gt;&lt;font size="2"&gt;TestRecoverySimple&lt;/font&gt;&lt;font color="#808080" size="2"&gt;);&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- ritorno alle dimensioni minime iniziali 1016 kb (35% occupato)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-- effettuo un select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Log size 2040 Kb (61% usato) l&amp;#39;attivita&amp;#39; di insert ha richiesto piu&amp;#39; spazio per il log&lt;/p&gt;
&lt;p&gt;-- nuovo select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable2 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Non e&amp;#39; aumentato l&amp;#39;operazione era uguale a prima e non ha richiesto altro spazio&lt;/p&gt;
&lt;p&gt;-- Log size 2040 Kb (57% usato) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-- nuovo select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable3 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- Continua a non aumentare 2040 Kb (61% usato) &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;-- ora select into sotto transazione&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;begin&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;tran&lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- 1° select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable4 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- non aumenta&lt;/p&gt;
&lt;p&gt;---2° select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable5 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- siamo sotto transazione la richiesta di spazio aumenta 3064 Kb (78% usate)&lt;/p&gt;
&lt;p&gt;---3° select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable6 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- siamo sotto transazione la richiesta di spazio aumenta ancora 4088 Kb (83% usate)&lt;/p&gt;
&lt;p&gt;---4° select into&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;select&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;*&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;into&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;NewBigTable7 &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;from&lt;/font&gt;&lt;font size="2"&gt; dbo&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;BigInsert&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;
&lt;p&gt;-- siamo sotto transazione la richiesta di spazio aumenta ancora 5112 Kb (83% usate)&lt;/p&gt;
&lt;p&gt;-- annullo&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;Rollback&lt;/p&gt;
&lt;p&gt;exec&lt;/font&gt;&lt;font size="2"&gt; fpsp_ShowLogDimension &lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&amp;#39;TestRecoverySimple&amp;#39;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;;&lt;/font&gt;&lt;font size="2"&gt; &lt;/p&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/font&gt;
&lt;p&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=2025" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Restore" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Restore/default.aspx" /><category term="RecoveryModel" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/RecoveryModel/default.aspx" /><category term="Backup" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Backup/default.aspx" /><category term="Truncation Log" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Truncation+Log/default.aspx" /></entry><entry><title>Restore di un DB Master corrotto</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/02/restore-di-un-db-master-corrotto.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/10/02/restore-di-un-db-master-corrotto.aspx</id><published>2007-10-01T22.25.00Z</published><updated>2007-10-01T22.25.00Z</updated><content type="html">&lt;p&gt;Questa e&amp;#39; carina... &lt;/p&gt;
&lt;p&gt;In presenza&amp;nbsp;di un&amp;nbsp;database Master corrotto l&amp;#39;istanza di SqlServer potrebbe&amp;nbsp;non partire, pertanto&amp;nbsp;sara&amp;#39; necessario procedere al restore di una copia valida del Master backuppata precedentemente. Ma, per poter effettuare il restore, occorre che l&amp;#39;istanza di Sql sia su... e ...&amp;nbsp;ci troviamo in una situazione di stallo &lt;img src="http://community.ugiss.org/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;/p&gt;
&lt;p&gt;Una soluzione drastica e&amp;#39; reinstallare SqlServer, ma esiste una via piu&amp;#39; comoda: reinstallare solo i DB di sistema tramite il seguente comando (documentato nel BOL) &lt;/p&gt;
&lt;p&gt;&lt;em&gt;start /wait &amp;lt;CD or DVD Drive&amp;gt;\setup.exe /qn INSTANCENAME=&amp;lt;Instance&amp;gt; REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=&amp;lt;NewStrongPassword&amp;gt;&lt;/em&gt; e, poi, procedere al restore del &amp;quot;nostro&amp;quot; master.&lt;/p&gt;
&lt;p&gt;Questa info l&amp;#39;ho letta nel seguente post dedicato a questa &amp;quot;complicata&amp;quot; situazione: &lt;a href="http://blogs.msdn.com/sqlserverstorageengine/archive/2006/09/26/772550.aspx"&gt;http://blogs.msdn.com/sqlserverstorageengine/archive/2006/09/26/772550.aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Inoltre in quel post viene anche illustrato il procedimento, leggermento piu&amp;#39; lungo,&amp;nbsp;da seguire qualora ci si trovi in presenza di un Sql Express&lt;/p&gt;
&lt;p&gt;Non se&amp;nbsp;la cosa era nota a tutti (tranne che a me)... In ogni caso mo&amp;#39; me la sono appuntata qui.. non si sa mai..... &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=1932" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Restore" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Restore/default.aspx" /><category term="Backup" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Backup/default.aspx" /><category term="Master" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Master/default.aspx" /></entry><entry><title>Logging del rebuild index </title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/09/26/logging-del-rebuild-index.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/09/26/logging-del-rebuild-index.aspx</id><published>2007-09-26T12.15.00Z</published><updated>2007-09-26T12.15.00Z</updated><content type="html">&lt;p&gt;Se il database e&amp;#39; settato in recovery model FULL tutte le scritture legate ad un &lt;em&gt;create index&lt;/em&gt; o a un &lt;em&gt;rebuild&lt;/em&gt; verranno tracciate nel file di log. Pertanto il transaction log puo&amp;#39; aumentare le proprie dimensioni in modo molto elevato (pensate alle scritture legate ad un indice cluster) aumentando anche i tempi necessari al &lt;em&gt;rebuild&lt;/em&gt; stesso.&lt;/p&gt;
&lt;p&gt;Questo non accade se il recovery model e&amp;#39; settato a BULK_LOGGED: in tal caso viene tracciato solo il fatto che l&amp;#39;operazione e&amp;#39; stata compiuta oltre ad alcune altre informazioni (tipo gli extended modificati) che serviranno a garantire la corretta esecuzione di un eventuale restore. In tal modo anche la ricreazione degli indici risulta piu&amp;#39; veloce.&lt;/p&gt;
&lt;p&gt;Per quello che mi riguarda,&amp;nbsp;dopo aver&amp;nbsp;costruito ed attivato un piano di manutenzione che ricreava un bel po&amp;#39; di indici e essermi trovato un file transaction &amp;quot;esploso&amp;quot; &lt;img src="http://community.ugiss.org/emoticons/emotion-6.gif" alt="Sad" /&gt;&amp;nbsp;ho pensato bene di portare il recovery a BULK_LOGGED prima di iniziare l&amp;#39;attivita&amp;#39; e di riportarlo a FULL una volta terminata la manutenzione.&lt;/p&gt;
&lt;p&gt;In&amp;nbsp;tal modo le dimensioni del file di log non crescono (se non in minima parte) durante le operazioni di rebuild&amp;nbsp;degli indici e sono anche un po&amp;#39; piu&amp;#39; veloci, ma...attenzione: quando viene effettuato il backup del transaction log Sql provvede a fare in modo che nel file di backup siano presenti tutte le infomazioni necessarie al restore. Pertanto recupera tutte le modifiche fatte alle pagine e le riporta nel file di backup. &lt;/p&gt;
&lt;p&gt;Quindi il file di log rimane &amp;quot;snello&amp;quot;, ma il suo backup si ingrossa fino ad assumere le dimensioni che avrebbe avuto il log in un recovery FULL&amp;nbsp;ed il tempo di backup si allunga.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;In tal modo e&amp;#39; garantito un restore completo sia con il modello FULL che con il BULK_LOGGED con tempi analoghi.&lt;/p&gt;
&lt;p&gt;Oltre alla creazione degli indici anche diverse altre operazioni (bcp, BULK INSERT, SELECT INTO...) vengono loggate in modo differente nei due modelli di recovery e, questa, e&amp;#39;&amp;nbsp;una buona ragione per approfondire e capire meglio le differenze tra FULL e BULK_LOGGED. &lt;/p&gt;
&lt;p&gt;(Se lo faro&amp;#39; sara&amp;#39; argomento per un prossimo post)&lt;/p&gt;
&lt;p&gt;Quanto detto vale per Sql2005, ho il sospetto che in Sql2000 le cose fossero&amp;nbsp;un po&amp;#39; differenti, ma non ho avuto il&amp;nbsp;modo di verificarlo (altro post in arrivo ?)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Buon backup a tutti !! &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=1881" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author><category term="Restore" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Restore/default.aspx" /><category term="RecoveryModel" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/RecoveryModel/default.aspx" /><category term="Backup" scheme="http://community.ugiss.org/blogs/orsocurioso/archive/tags/Backup/default.aspx" /></entry><entry><title>truncate table con campo identity</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/09/23/truncate-table-con-campo-identity.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/09/23/truncate-table-con-campo-identity.aspx</id><published>2007-09-23T13.22.00Z</published><updated>2007-09-23T13.22.00Z</updated><content type="html">&lt;p&gt;Mi sono imbattuto in un comportamento di SqlServer&amp;nbsp;che, di prima battuta, non mi aspettavo, anche se riflettendoci un momento e&amp;#39; assolutamente corretto e sensato (oltre che documentato). Comunque lo posto perche&amp;#39; potrebbe essere inaspettato anche per&amp;nbsp;qualcun altro.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Se fate un &amp;quot;truncate table&amp;quot; di una tabella che contiene un campo identity il suo valore viene riazzerato&lt;/strong&gt; e, al primo insert,&amp;nbsp;lo trovate&amp;nbsp;valorizzato al suo seed iniziale. In altre parole la truncate fa &amp;quot;perdere&amp;quot; a Sql il valore attuale del contatore,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=1806" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author></entry><entry><title>inaugurazione</title><link rel="alternate" type="text/html" href="http://community.ugiss.org/blogs/orsocurioso/archive/2007/09/23/inaugurazione.aspx" /><id>http://community.ugiss.org/blogs/orsocurioso/archive/2007/09/23/inaugurazione.aspx</id><published>2007-09-23T13.04.00Z</published><updated>2007-09-23T13.04.00Z</updated><content type="html">&lt;p&gt;Da questo luogo provero&amp;#39; anch&amp;#39;io a segnalare caratteristiche e situazioni Sql che mi hanno colpito o semplicemente interessato. Un modo per ricordarsele e, magari, in qualche caso, essere utile.&lt;/p&gt;
&lt;p&gt;Ma sono solo uno sviluppista quindi non aspettatevi nulla di straordinario: in fondo unisco le incompentenze di entrambe le figure &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&amp;nbsp; ... Pero&amp;#39;, non si sa mai, come dice un vecchio saggio tosco-emiliano&amp;nbsp; &amp;quot;&lt;em&gt;ho visto a volte che anche un topo sa ruggire ed anche un&amp;#39; aquila precipitata&lt;/em&gt;&amp;quot;.... per cui... stay tuned !!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Franco (aka OrsoCurioso)&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=1805" width="1" height="1"&gt;</content><author><name>orsocurioso</name><uri>http://community.ugiss.org/members/orsocurioso.aspx</uri></author></entry></feed>