<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.ugiss.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Francesco Quaratino</title><link>http://community.ugiss.org/blogs/sgainz/default.aspx</link><description>Enjoy Your SeQueL&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://community.ugiss.org/blogs/sgainz/Director_Cut.jpg" border="0" alt="...dopo aver assistito a un concerto di David Gilmour" /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.sqlbits.com/Information/SessionSubmission.aspx"&gt;&lt;img src="http://www.sqlbits.com/images/SQLBits/IveSubmmitted.png" alt="Submit a session for SQLBits" style="border-width:0px;" /&gt;&lt;/a&gt; </description><dc:language>it</dc:language><generator>CommunityServer 2007 SP2 (Debug Build: 20611.960)</generator><item><title>Things are looking up</title><link>http://community.ugiss.org/blogs/sgainz/archive/2012/12/21/things-are-looking-up.aspx</link><pubDate>Fri, 21 Dec 2012 21:29:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:9633</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=9633</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=9633</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2012/12/21/things-are-looking-up.aspx#comments</comments><description>&lt;p&gt;E&amp;#39; tempo di bilanci e previsioni, ma soprattutto di un post dopo tanti mesi. &lt;/p&gt;&lt;p&gt;E&amp;#39; stato un anno intenso, in cui ho lavorato a tempo pieno come DBA in &lt;a href="http://www.betgenius.com" title="Betgenius" target="_blank"&gt;Betgenius&lt;/a&gt;, dove il &amp;quot;tempo pieno&amp;quot; ha significato anche molti weekend alle prese con gli &lt;i&gt;incoming issues&lt;/i&gt; specie durante la Premier League inglese, per non parlare delle 20 ore di fila passate a ripristinare le repliche transazionali dopo un disk failure del publisher - esperienza difficile da dimenticare specie se hai finito di lavorare quando il sole stava per sorgere.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Mi è mancato un po&amp;#39; il lavoro di SQL Developer, e ancor più quello di BI Developer - cercherò di rimediare l&amp;#39;anno prossimo, in realtà ci sto lavorando sù e credo di essere sulla buona strada.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Questo è stato l&amp;#39;anno della fantastica SQL Bits X a Londra in Marzo, che ha coinciso con il lancio di SQL Server 2012, e alla quale ho partecipato solo da spettatore. Ancora appagato dalla &lt;a href="http://www.sqlbits.com/%28X%281%29S%28rvhw4svwhvv403unuasmdl45%29%29/Sessions/Event9/The_forgotten_DBA_daily_essential_checklist" title="The forgotten DBA daily essential checklist" target="_blank"&gt;mia prima presentazione&lt;/a&gt; in lingua inglese nella precedente edizione di Liverpool, non ho proposto nessuna sessione anche perchè oggettivamente le possibilità sarebbero state inferiori a quelle di Liverpool: si è trattato della più grande SQL Bits mai avuta e sono arrivati i migliori speaker da tutto il mondo. &lt;/p&gt;&lt;p&gt;Ci sono stati i primi due esami di certificazione SQL Server 2012 che ho fatto la mattina del giorno di Pasqua - sì bizzarro lo sò, ma l&amp;#39;exam centre più vicino a casa aveva posti disponibili solo quel giorno&amp;nbsp;&lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. &lt;/p&gt;&lt;p&gt;E infine &lt;a href="http://sqlserverfaq.com/events/452/SQL-Santa-2012.aspx" title="SQL Santa 2012"&gt;SQL Santa 2012&lt;/a&gt; organizzato dal &amp;quot;UK SQL Server User Group&amp;quot; in cui ho presentato una sessione sul Table Partitioning dove ho visto molta partecipazione e interesse. Così, sulla scia di questo interesse ho deciso di proporre due sessioni alla prossima SQL Bits che si terrà a Nottingham il Maggio 2013, una delle quali sempre sul table partitioning: &lt;br /&gt;&lt;/p&gt;&lt;p&gt;
        &lt;a href="http://www.sqlbits.com/Sessions/Event11/How_to_make_your_first_SQL_Server_Monitoring_Tool" target="_blank"&gt;&lt;b&gt;How to make your first SQL Server Monitoring Tool&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;div&gt;
        &lt;i&gt;I made my first Robot when I was 10, my first software program 
when I was 15, my first video game a few months later and my first 
3rd-normal-form relational database when I was 23. I really enjoyed 
making those things even though someone else had done them before.Now 
it&amp;#39;s time to build a SQL Server Monitoring Tool.This session will define
 the basic guidelines to build a tool which is able to monitor SQL 
Server efficiently.
    &lt;/i&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.sqlbits.com/Sessions/Event11/Table_partitioning_Pros__Cons1" target="_blank"&gt;&lt;b&gt;Table partitioning: Pros &amp;amp; Cons&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;div&gt;
        &lt;i&gt;Should I partition that table? Before answering that apparently 
simple question, DBAs would better take a long breath and consider all 
the table partitioning&amp;#39;s pros and cons. In this session we will dive 
into several typical scenarios where that question is anything but 
trivial. &lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;Spero soprattutto nella prima, anche perchè decisamente più divertente. Stiamo a vedere come vanno le votazioni. A parte questo, il prossimo anno c&amp;#39;è da completare la &lt;a href="http://www.microsoft.com/learning/en/us/mcsa-sql-certification.aspx" target="_blank"&gt;MCSA: SQL Server&lt;/a&gt; e il &lt;a href="http://www.microsoft.com/learning/en/us/mcse-sql-data-platform.aspx" target="_blank"&gt;MCSE: Data Platform &lt;/a&gt;. Considerato che metà del lavoro è stato fatto, c&amp;#39;è da essere fiduciosi. Perchè insistere con le certificazioni? Francamente sono sempre stato un forte sostenitore delle certificazioni SQL Server, e lo sono ancora di più da quando lavoro a Londra, dove di fatto sono in molti a conoscerne l&amp;#39;esistenza e a darne il giusto valore.&lt;/p&gt;&lt;p&gt;Buon anno 2013 a tutti i SQL people di passaggio.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Things are looking up! &lt;br /&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=9633" width="1" height="1"&gt;</description></item><item><title>IT, Community, Job &amp; Networking</title><link>http://community.ugiss.org/blogs/sgainz/archive/2012/04/13/it-community-job-amp-networking.aspx</link><pubDate>Fri, 13 Apr 2012 15:02:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:9137</guid><dc:creator>sgainz</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=9137</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=9137</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2012/04/13/it-community-job-amp-networking.aspx#comments</comments><description>&lt;p&gt;In molte occasioni ho suggerito ad amici e colleghi di partecipare ai tanti eventi gratuiti organizzati dalle Community come UGISS o direttamente da Microsoft. Credo siano una delle rare occasioni che abbiamo di confrontarci davvero con la realtá e talvolta con il mercato del lavoro a prezzo ZERO - vedi il &lt;a title=".NETCampus" href="http://www.dotnetcampus.it/" target="_blank"&gt;.NETCampus&lt;/a&gt;&amp;nbsp;il cui motto é appunto &amp;quot;non dimenticare di portare con te il tuo curriculum&amp;quot;). &lt;/p&gt;&lt;p&gt;Partecipare a questo tipo di eventi mi ha dato fin&amp;#39;ora la possibilitá, oltre che di apprendere cose utili per il mio lavoro, anche e soprattutto di conoscere &amp;quot;persone&amp;quot; che col tempo mi hanno arricchito professionalmente e umanamente. Nell&amp;#39;era del social networking inteso in senso digitale, conoscersi di persona e scambiare le proprie opinioni magari sorseggiando una buona birra :-) NON ha prezzo.&lt;/p&gt;&lt;p&gt;Quindi approfitto per segnalare ai soliti amici i prossimi eventi imperdibili: &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.ugiss.org/Content/Event/What-s-new-for-Business-Intelligence-in-Denali-The-Clients-Milano.aspx" target="_blank"&gt;What’s new for Business Intelligence in Denali - The Clients&lt;/a&gt; &lt;br /&gt;18/04/2012 a Milano &lt;br /&gt;19/04/2012 a Roma&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://www.dotnetcampus.it" target="_blank"&gt;.NETCampus&lt;br /&gt;&lt;/a&gt;21/04/2012 a Roma &lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Go!Go!Go!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=9137" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Job+_2600_amp_3B00_+Networking/default.aspx">Job &amp;amp; Networking</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/IT/default.aspx">IT</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Community/default.aspx">Community</category></item><item><title>DISABLE INDEX &amp; DROP CLUSTERED INDEX</title><link>http://community.ugiss.org/blogs/sgainz/archive/2012/04/09/disable-index-amp-drop-clustered-index.aspx</link><pubDate>Mon, 09 Apr 2012 10:08:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:9122</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=9122</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=9122</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2012/04/09/disable-index-amp-drop-clustered-index.aspx#comments</comments><description>&lt;p&gt;Qualche giorno fa mi è capitato un piccolo imprevisto legato alla disabilitazione degli indici Non-Clustered.&lt;br /&gt;&lt;br /&gt;A partire da SQL 2005 è possibile disabilitare un index (attenti però che per l&amp;#39;indice Clustered equivale a rendere inaccassibile la tabella e sarà necessario farne la rebuild per ritemmerla online).&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Personalmente uso disabilitare, invece che cancellare, gli indici Non-Clustered scarsamenti utilizzati perchè in questo modo mantengo la definizione dell&amp;#39;indice e allo stesso tempo mi libero dell&amp;#39;indice in termini di allocazione e overhead in fase di aggiornamento della tabella poichè di fatto l&amp;#39;indice non esiste più dopo che l&amp;#39;ho disabilitato.&lt;br /&gt;&lt;br /&gt;E&amp;#39; accaduto, quindi, che per una tabella piuttosto grande (&amp;gt;100GB) che stavo ottimizzando ridisegnandola in termini di indici, dopo aver disabilitato nei giorni precendenti alcuni indici Non-Clustered non utilizzati si è deciso, dopo opportune analisi, di ridefinirne l&amp;#39;indice Clustered perchè ciò avrebbe risparmiato spazio su disco e reso più performanti i frequenti inserimenti e la maggioranza delle query in lettura. &lt;br /&gt;Fin qui, tutto ok. Se non fosse che trattandosi di una PRIMARY KEY CLUSTERED ho dovuto prima farne la DROP, quindi ricrearlo con la nuova definizione.&lt;br /&gt;&lt;br /&gt;Dove sta l&amp;#39;imprevisto? &lt;br /&gt;&lt;br /&gt;La DROP dell&amp;#39;indice Clustered (a meno che eseguita con la clausola DROP_EXISTING = ON) causa indirettamente la rebuild di tutti gli indici Non-Clustered, quindi eccomi &amp;quot;ritornare a galla&amp;quot; tutti gli indici precedentemente disabilitati (..che erano tanti..) i quali sono stati automaticamente abilitati in seguito a questa rebuild. Un bello spavento! &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A proposito di DROP_EXISTING, molto interessante questo &lt;a href="http://www.kendalvandyke.com/2010/09/index-operations-showdown-drop-create.html" title="Index Operations Showdown: Drop &amp;amp; Create vs. Create With Drop_Existing vs. Rebuild" target="_blank"&gt;test&lt;/a&gt;&amp;nbsp; che mostra come &lt;i&gt;&amp;quot;Dropping an index first and then creating it again is an average of 2-3 times more costly in I/O, CPU, and duration vs. rebuilding\creating the index with DROP_EXISTING = ON&lt;/i&gt;&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=9122" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/DROP+CLUSTERED+INDEX/default.aspx">DROP CLUSTERED INDEX</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/DROP_5F00_EXISTING/default.aspx">DROP_EXISTING</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/DISABLE+INDEX/default.aspx">DISABLE INDEX</category></item><item><title>The number of row value expressions in the INSERT statement exceeds the maximum allowed..</title><link>http://community.ugiss.org/blogs/sgainz/archive/2012/03/30/the-number-of-row-value-expressions-in-the-insert-statement-exceeds-the-maximum-allowed.aspx</link><pubDate>Fri, 30 Mar 2012 11:50:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:9085</guid><dc:creator>sgainz</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=9085</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=9085</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2012/03/30/the-number-of-row-value-expressions-in-the-insert-statement-exceeds-the-maximum-allowed.aspx#comments</comments><description>&lt;p&gt;..number of 1000 row values. Alquanto sorpeso.&amp;nbsp;E perché questo magic number 1000? mbha.&lt;/p&gt;&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/INSERT%20VALUES.PNG"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/INSERT%20VALUES.PNG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=9085" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/INSERT+VALUES/default.aspx">INSERT VALUES</category></item><item><title>SQL Bits 9 and Itzik Ben-Gan</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/10/09/sql-bits-9-and-itzik-ben-gan.aspx</link><pubDate>Sun, 09 Oct 2011 10:23:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8564</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8564</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8564</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/10/09/sql-bits-9-and-itzik-ben-gan.aspx#comments</comments><description>&lt;p&gt;Per un SQL DBA, vivere a Londra ha i suoi vantaggi. Una settimana fa breve gita a Liverpool per partecipare alla SQL Bits 9. Della mia sessione sono tutto sommato soddisfatto.&amp;nbsp;I partecipanti, tra 40 e&amp;nbsp;50, anche se un po&amp;#39; sgomenti per il mio inglese maccheronico, sono rimasti lí a sentirmi fino alla fine. &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt; Nel corso della conferenza ho incontrato &lt;a href="http://ola.hallengren.com/" target="_blank"&gt;Ola Hallengren&lt;/a&gt; e abbiamo avuto una lunga e profiqua conversazione in cui abbiamo discusso della sua Maintenance Solution. Durante la conversazione con Ola, siamo arrivati alla triste conclusione che molti DBA non controllano l&amp;#39;integritá dei propri database. A proposito di CHECKDB, vi invito a votare questo suggerimento di Ola &amp;quot;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/468694/maxdop-option-in-dbcc-checkdb" target="_blank"&gt;MAXDOP option in DBCC CHECKDB&lt;/a&gt;&amp;quot; che condivido in pieno.&lt;/p&gt;
&lt;p&gt;Mentre pochi giorni fa ho partecipato per la prima volta a una &lt;a href="http://sqlserverfaq.com/default.aspx?item=event&amp;amp;itemid=324" target="_blank"&gt;sessione&lt;/a&gt; di Itzik Ben-Gan sull&amp;#39;argomento &amp;quot;T-SQL Window Functions in Denali&amp;quot;. In una parola &amp;quot;Stupefacente&amp;quot;. Itzik ha anche rivelato di aver giá scritto un intero libro sull&amp;#39;argomento e che sta aspettando soltanto l&amp;#39;uscita ufficiale di Denali. Non vedo l&amp;#39;ora di leggere&amp;nbsp;questo suo nuovo libro.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;English version&lt;/em&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To live in London can be useful for a SQL DBA. Just one week ago, I had a short journey in Liverpool for attending the SQL Bits 9 Conference. I&amp;#39;m satisfied about my presentation. The people in the conference room, between 40 and 50 people, stayed until the end of the session even though they were a bit dismay about my broken english &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;. On Saturday afternoon I had a long and useful chat with &lt;a href="http://ola.hallengren.com/" target="_blank"&gt;Ola Hallengren&lt;/a&gt; where we discussed about his Maintenance Solution. During the coversation with Ola, we sadly concluded that many DBAs usually don&amp;#39;t check the integrity of their databases. By the way, I advice you to vote this Ola&amp;#39;s suggestion &amp;quot;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/468694/maxdop-option-in-dbcc-checkdb" target="_blank"&gt;MAXDOP option in DBCC CHECKDB&lt;/a&gt;&amp;quot; that I totally agree.&lt;/p&gt;
&lt;p&gt;While just few days ago I attended a &lt;a href="http://sqlserverfaq.com/default.aspx?item=event&amp;amp;itemid=324" target="_blank"&gt;presentation&lt;/a&gt; made by Itzik Ben-Gan about &amp;quot;T-SQL Window Functions in Denali&amp;quot;. Simply &amp;quot;Amazing&amp;quot;. Itzik revealed he already wrote an entire book about this subject and he&amp;#39;s just waiting for the next release of Denali. I look forward to read this new book.&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8564" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Denali/default.aspx">Denali</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Checkdb/default.aspx">Checkdb</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/T-SQL+Window+Functions/default.aspx">T-SQL Window Functions</category></item><item><title>[OT] iPhone, iPod, iPad, ...</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/10/06/ot-iphone-ipod-ipad.aspx</link><pubDate>Thu, 06 Oct 2011 10:24:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8558</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8558</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8558</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/10/06/ot-iphone-ipod-ipad.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/iPaid.PNG"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/iPaid.PNG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8558" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/iPad/default.aspx">iPad</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/iPhone/default.aspx">iPhone</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/iPod/default.aspx">iPod</category></item><item><title>CHECKDB for Very Large Database</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/08/25/checkdb-for-very-large-database.aspx</link><pubDate>Thu, 25 Aug 2011 11:19:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8440</guid><dc:creator>sgainz</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8440</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8440</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/08/25/checkdb-for-very-large-database.aspx#comments</comments><description>&lt;p&gt;Da lunedí&amp;nbsp;scorso ho iniziato a implementare&amp;nbsp;una politica di&amp;nbsp;CHECKDB comune&amp;nbsp;a tutti i server SQL dell&amp;#39;azienda per cui sto lavorando. E&amp;#39; veramente ora, dopo oltre 3 mesi, metter mano a questo punto fondamentale della checklist del &amp;quot;bravo DBA&amp;quot;. Un&amp;#39;attivitá interessante fino a questo momento perché ho incontrato diversi problemi, primo fra tutti il fatto di dover lavorare con database in uso 24x7,&amp;nbsp;di dimensioni piuttosto grandi (il piú grande di oltre&amp;nbsp;500 gb) e, inoltre, oggetto di Database Mirroring e questi ultimi di Database Snapshot. &lt;/p&gt;
&lt;p&gt;Inoltre, per l&amp;#39;occasione&amp;nbsp;ho rispolverato &lt;a href="http://www.sqlmag.com/article/tsql3/dbcc-checkdb-for-very-large-databases" target="_blank"&gt;questo&lt;/a&gt; script di &lt;a href="http://www.sqlmag.com/author/5738030/DavidPaulGiroux.aspx"&gt;David Paul Giroux&lt;/a&gt;&amp;nbsp;che ho iniziato a &amp;quot;integrare&amp;quot; con&amp;nbsp;la &amp;quot;&lt;a href="http://ola.hallengren.com/"&gt;Database Maintenance Solution&lt;/a&gt;&amp;quot; di Ola Hallengren - che dal punto di vista del CheckDB é a mio avviso ancora carente. Una prima versione, ancora da limare, é finalmente in produzione da poche ore :) peró l&amp;#39;integrazione é ancora in itinere. Di questa soluzione conto di parlare anche durante la mia sessione del prossimo SQL Bits intitolata &amp;quot;&lt;a href="http://www.sqlbits.com/Sessions/Event9/The_forgotten_DBA_daily_essential_checklist"&gt;The forgotten DBA daily essential checklist&lt;/a&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8440" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/DBCC+CHECKDB/default.aspx">DBCC CHECKDB</category></item><item><title>SQL Server Team Work Basics</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/07/21/sql-server-team-work-basics.aspx</link><pubDate>Thu, 21 Jul 2011 14:47:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8370</guid><dc:creator>sgainz</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8370</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8370</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/07/21/sql-server-team-work-basics.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/Team%20Work.jpg"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/Team%20Work.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8370" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Team+work/default.aspx">Team work</category></item><item><title>Ola Hallengren Maintenance Solution: Support for logging to a table</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/07/20/ola-hallengren-maintenance-solution-support-for-logging-to-a-table.aspx</link><pubDate>Wed, 20 Jul 2011 16:59:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8360</guid><dc:creator>sgainz</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8360</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8360</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/07/20/ola-hallengren-maintenance-solution-support-for-logging-to-a-table.aspx#comments</comments><description>&lt;p&gt;Pochi giorni fa &lt;a href="http://ola.hallengren.com/Versions.html" target="_blank"&gt;Ola Hallengren&lt;/a&gt; ha rilasciato un aggiornamento alla sua Maintenance Solution, nel quale ha aggiunto il logging dei comandi nella tabella &lt;strong&gt;Master.dbo.CommandLog&lt;/strong&gt;. Domenica scorsa ho avuto modo di installare l&amp;#39;aggiornamento sul mio notebook e di scambiare anche qualche osservazione con l&amp;#39;autore sulla colonna &lt;strong&gt;ExtendedInfo&lt;/strong&gt;. Trattasi di una colonna di tipo xml in cui per il momento vengono loggate solo il numero di data pages e il fragmentation level degli indici riorganizzati/ricostruiti. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;ExtendedInfo&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;PageCount&amp;gt;1490&amp;lt;/PageCount&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;Fragmentation&amp;gt;0.0671141&amp;lt;/Fragmentation&amp;gt;&lt;br /&gt;&amp;lt;/ExtendedInfo&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;L&amp;#39;idea di fondo é avere un dato destrutturato con il quale aggiungere agevolmente nuove informazioni in futuro. Per esempio, a me interessa particolarmente loggare il tipo di attivitá svolto sugli indici: REORGANIZE, REBUILD o UPDATE STATISTICS. Per cui mi é bastato modificare la stored procedure &lt;strong&gt;dbo.IndexOptimize&lt;/strong&gt; includendo la variabile &lt;strong&gt;@CurrentAction&lt;/strong&gt; nel xml assegnato a @CurrentExtendedInfo (Line 909)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;SET @CurrentExtendedInfo = ( SELECT *&lt;br /&gt;&amp;nbsp;FROM (SELECT CAST(@CurrentPageCount AS nvarchar) AS [PageCount],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;CAST(@CurrentFragmentationLevel AS nvarchar) AS Fragmentation,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@CurrentAction AS [Action]&lt;br /&gt;&amp;nbsp;&amp;nbsp;) ExtendedInfo FOR XML AUTO, ELEMENTS)&lt;br /&gt;END&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;stesso discorso per tracciare l&amp;#39;attivitá di UPDATE STATISTICS&amp;nbsp; (Line 977)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;IF @CurrentStatisticsID IS NOT NULL AND &lt;br /&gt;&amp;nbsp;(@CurrentPageCount IS NOT NULL &lt;br /&gt;&amp;nbsp;&amp;nbsp;OR @CurrentFragmentationLevel IS NOT NULL &lt;br /&gt;&amp;nbsp;&amp;nbsp;OR @CurrentAction IS NOT NULL&lt;br /&gt;&amp;nbsp;)&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;SET @CurrentExtendedInfo = (SELECT *&lt;br /&gt;&amp;nbsp;&amp;nbsp;FROM (SELECT CAST(&amp;#39;UPDATE_STATISTICS&amp;#39; AS nvarchar) AS Action&lt;br /&gt;&amp;nbsp;) ExtendedInfo FOR XML AUTO, ELEMENTS)&lt;br /&gt;END&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ottenendo cosí una cosa tipo&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;lt;ExtendedInfo&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;PageCount&amp;gt;1490&amp;lt;/PageCount&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;Fragmentation&amp;gt;0.0671141&amp;lt;/Fragmentation&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;Action&amp;gt;INDEX_REBUILD_ONLINE&amp;lt;/Action&amp;gt; &lt;br /&gt;&amp;lt;/ExtendedInfo&amp;gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In questo modo, possiamo interrogare la tabella per avere dati statistici basati sul tipo di attivitá di manutenzione come con questa query: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;;WITH cte AS (&lt;br /&gt;&amp;nbsp;SELECT&lt;br /&gt;&amp;nbsp;&amp;nbsp;DatabaseName,&lt;br /&gt;&amp;nbsp;&amp;nbsp;ExtendedInfo.value(&amp;#39;(ExtendedInfo/Action)[1]&amp;#39;,&amp;#39;nvarchar(30)&amp;#39;) AS [Action],&lt;br /&gt;&amp;nbsp;&amp;nbsp;convert(nvarchar(10), StartTime, 121) AS StartDate,&lt;br /&gt;&amp;nbsp;&amp;nbsp;DATEDIFF(ms,StartTime, EndTime) AS Duration &lt;br /&gt;&amp;nbsp;FROM &lt;br /&gt;&amp;nbsp;&amp;nbsp;dbo.CommandLog&lt;br /&gt;)&lt;br /&gt;SELECT&lt;br /&gt;&amp;nbsp;DatabaseName,&lt;br /&gt;&amp;nbsp;StartDate,&lt;br /&gt;&amp;nbsp;[Action],&lt;br /&gt;&amp;nbsp;Duration = SUM(Duration)/1000.0, &lt;br /&gt;&amp;nbsp;Num = COUNT(*)&lt;br /&gt;FROM&lt;br /&gt;&amp;nbsp;cte&lt;br /&gt;WHERE &lt;br /&gt;&amp;nbsp;[Action] IS NOT NULL&lt;br /&gt;GROUP BY&lt;br /&gt;&amp;nbsp;DatabaseName,&lt;br /&gt;&amp;nbsp;StartDate,&lt;br /&gt;&amp;nbsp;Action&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/logquery.PNG"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/logquery.PNG" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Se, invece, non vogliamo &amp;quot;sporcare&amp;quot; il codice di Ola - come giustamente mi ha suggerito lui stesso&amp;nbsp;- possiamo lavorare con qualche LIKE come in questa query:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;;WITH cte AS (&lt;br /&gt;&amp;nbsp;SELECT DatabaseName, &lt;br /&gt;&amp;nbsp;&amp;nbsp;CASE &lt;br /&gt;&amp;nbsp;&amp;nbsp;WHEN CommandType = &amp;#39;UPDATE_STATISTICS&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;THEN &amp;#39;UPDATE_STATISTICS&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;WHEN CommandType = &amp;#39;ALTER_INDEX&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND Command LIKE &amp;#39;ALTER INDEX%REORGANIZE%&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;THEN &amp;#39;INDEX_REORGANIZE&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;WHEN CommandType = &amp;#39;ALTER_INDEX&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND Command LIKE &amp;#39;ALTER INDEX%REBUILD%ONLINE = ON%&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;THEN &amp;#39;INDEX_REBUILD_ONLINE&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;WHEN CommandType = &amp;#39;ALTER_INDEX&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND Command LIKE &amp;#39;ALTER INDEX%REBUILD%ONLINE = OFF%&amp;#39; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;THEN &amp;#39;INDEX_REBUILD_OFFLINE&amp;#39;&lt;br /&gt;&amp;nbsp;&amp;nbsp;END AS [Action],&lt;br /&gt;&amp;nbsp;&amp;nbsp;convert(nvarchar(10), StartTime, 121) AS StartDate,&lt;br /&gt;&amp;nbsp;&amp;nbsp;DATEDIFF(ms,StartTime, EndTime) AS Duration&lt;br /&gt;FROM &lt;br /&gt;&amp;nbsp;dbo.CommandLog&lt;br /&gt;)&lt;br /&gt;SELECT&lt;br /&gt;&amp;nbsp;DatabaseName,&lt;br /&gt;&amp;nbsp;StartDate,&lt;br /&gt;&amp;nbsp;[Action],&lt;br /&gt;&amp;nbsp;Duration = SUM(Duration)/1000.0, &lt;br /&gt;&amp;nbsp;Num = COUNT(*)&lt;br /&gt;FROM&lt;br /&gt;&amp;nbsp;cte&lt;br /&gt;WHERE &lt;br /&gt;&amp;nbsp;[Action] IS NOT NULL&lt;br /&gt;GROUP BY&lt;br /&gt;&amp;nbsp;DatabaseName,&lt;br /&gt;&amp;nbsp;StartDate,&lt;br /&gt;&amp;nbsp;Action&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Long Live Ola! &lt;img src="http://community.ugiss.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8360" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Ola+Hallengren/default.aspx">Ola Hallengren</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Maintenance+Solution/default.aspx">Maintenance Solution</category></item><item><title>SQL Server Code Name "Denali" CTP3</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/07/12/sql-server-code-name-quot-denali-quot-ctp3.aspx</link><pubDate>Tue, 12 Jul 2011 09:49:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8311</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8311</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8311</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/07/12/sql-server-code-name-quot-denali-quot-ctp3.aspx#comments</comments><description>&lt;p&gt;Disponibile la CTP3 di Denali, persino in lingua Italiana! ...downloading, ma quella in inglese &lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title="SQL Server Code Name &amp;quot;Denali&amp;quot; CTP3 " href="https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/default.aspx" target="_blank"&gt;SQL Server Code Name &amp;quot;Denali&amp;quot; CTP3 &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/DenaliCTP3.png"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/DenaliCTP3.png" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8311" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Denali+CTP3/default.aspx">Denali CTP3</category></item><item><title>The forgotten DBA daily essential checklist</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/07/09/the-forgotten-dba-daily-essential-checklist.aspx</link><pubDate>Sat, 09 Jul 2011 10:49:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8300</guid><dc:creator>sgainz</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8300</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8300</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/07/09/the-forgotten-dba-daily-essential-checklist.aspx#comments</comments><description>&lt;a href="http://www.sqlbits.com/Information/SessionSubmission.aspx" target="new"&gt;&lt;img src="http://www.sqlbits.com/images/SQLBits/IveSubmmitted.png" alt="Submit a session for SQLBits" style="border-width:0px;" /&gt;&lt;/a&gt;

&lt;p&gt;
Eccola qui, la sessione che ho proposto alla prossima SQLBits che si terrà dal 29 settembre al 1 ottobre. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.sqlbits.com/Sessions/Event9/The_forgotten_DBA_daily_essential_checklist" target="new"&gt;&amp;quot;The forgotten DBA daily essential checklist&amp;quot;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Speriamo bene, soprattutto per il mio inglese!!!! In ogni caso, sarò li l&amp;#39;1 ottobre (e forse anche i due precedenti) e consiglio vivamente a tutti di iscriversi alla terza giornata che è gratuita - un giro a Liverpool, la città natale dei Beatles potrebbe essere un incentivo in più, no? 
&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8300" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/SQLBits/default.aspx">SQLBits</category></item><item><title>Database Mirroring + Snapshot = Bad Practice</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/06/18/database-mirroring-snapshot-bad-practice.aspx</link><pubDate>Fri, 17 Jun 2011 22:49:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8290</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8290</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8290</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/06/18/database-mirroring-snapshot-bad-practice.aspx#comments</comments><description>&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="FONT-FAMILY:arial;FONT-SIZE:small;" class="Apple-style-span"&gt;
&lt;div&gt;Quella rappresentato qui sotta&amp;nbsp;è una&amp;nbsp;tipica architettura di&amp;nbsp;Alta Disponibilità&amp;nbsp;di SQL Server 2005/2008 implementata mediante il Database Mirroring in modalita&amp;#39; asincrona ed il Database Snapshot:&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;il&amp;nbsp;Database Mirroring&amp;nbsp;consente di ridondandare&amp;nbsp;l&amp;#39;intero&amp;nbsp;database su un server di&amp;nbsp;Mirroring pronto a entrare in gioco in caso di failure del server Principal;&lt;/li&gt;
&lt;li&gt;il Database Snapshot&amp;nbsp;permette di interrogare il Mirroring a un dato momento (quello della creazione dello snapshot appunto) che altrimenti non sarebbe accessabile in quanto perennemente in stato di Restoring.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/mirror_snap_S.jpg"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/mirror_snap_S.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="FONT-FAMILY:arial;FONT-SIZE:small;" class="Apple-style-span"&gt;
&lt;div&gt;Se sulla carta e&amp;#39; un&amp;#39;ottima&amp;nbsp;soluzione di Alta Disponibilità e di Bilanciamento del Carico delle interrogazioni, di fatto lo Snapshot introduce problemi che si mostrano particolarmente importanti in presanza di VLDBs (Very Large Databases).&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;La questione sta tutta nel fatto che un Database Snapshot è legato indissolubilmente al database OLTP (il Principal del mirroring) e non sempre questo rappresenta un vantaggio.&amp;nbsp;E così, può succedere che un indice necessario per la reportistica, sia invece inutile, anzi nocivo (vedi il post &amp;quot;&lt;a href="http://sqlblog.com/blogs/davide_mauri/archive/2011/06/11/how-the-number-of-indexes-built-on-a-table-can-impact-performances.aspx"&gt;How the number of indexes built on a table can impact performances?&lt;/a&gt;&amp;quot; di Davide Mauri), per le operazioni di insert/update tipiche di un database OLTP. &lt;/div&gt;
&lt;div&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:13px Verdana, Arial, sans-serif;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="TEXT-ALIGN:left;FONT-SIZE:11px;" class="Apple-style-span"&gt;&amp;nbsp;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Inoltre, mentre possiamo misurare l&amp;#39;uso di un indice sul Principal mediante apposite DMV, la stessa cosa non possiamo farla sullo Snapshot che afferisce al Mirroring. Di conseguenza è facile commettere l&amp;#39;errore di disabilitare un indice inutilizzato sul Principal, ma la cui presenza è invece di vitale importante sullo Snapshot&amp;nbsp;per le&amp;nbsp;interrogazioni!!!&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Un altro problema che può sorgere in questo scenario, scaturisce dall&amp;#39;operazione di Rebuild degli indici e/o dal CheckDB, i quali provocano un aumento dello spazio in uso del transaction-log (e questo nonostante facciate backup del log frequentissimi, tipo ogni 5 minuti) sul Principal, errori nella sincronizzazione del mirroring e, infine, la non disponibilità dello Snapshot, la cui presenza in realtà è la causa di tutto questo.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;Questo fenomeno è ben descritto in&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/psssql/archive/2008/07/10/sql-server-reports-operating-system-error-1450-or-1452-or-665-retries.aspx" target="_blank"&gt;questo post&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;del CSS SQL Server Engineers.&amp;nbsp;Io ho avuto modo di osservarlo in un Mirroring tra SQL 2005 e non c&amp;#39;è stato verso di far riprendere la sincronizzazione del mirroring se non dopo aver riavviato il server di Mirroring. &lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Le scelte sbagliate in tema di architettura, prima o poi, si pagano.&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;br class="Apple-interchange-newline" /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8290" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/DATABASE+SNAPSHOT/default.aspx">DATABASE SNAPSHOT</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/rebuild+indexes/default.aspx">rebuild indexes</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Database+Mirroring/default.aspx">Database Mirroring</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/High+Availability/default.aspx">High Availability</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Checkdb/default.aspx">Checkdb</category></item><item><title>Qui Londra chiama Italia</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/06/12/qui-londra-chiama-italia.aspx</link><pubDate>Sun, 12 Jun 2011 21:31:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8287</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8287</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8287</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/06/12/qui-londra-chiama-italia.aspx#comments</comments><description>&lt;p&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="LINE-HEIGHT:20px;FONT-FAMILY:arial, sans-serif;FONT-SIZE:16px;" class="Apple-style-span"&gt;Martedì scorso ho partecipato all&amp;#39;evento serale &amp;quot;An evening with the SQL Server Leadership Team&amp;quot;&amp;nbsp; organizzato da &lt;a href="http://www.sqlsocial.com/"&gt;SQL Social&lt;/a&gt; e Microsoft, che si è tenuto a Londra in uno splendido edificio al numero 100 di Victoria Street.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="LINE-HEIGHT:20px;FONT-FAMILY:arial, sans-serif;FONT-SIZE:16px;" class="Apple-style-span"&gt;A parte l&amp;#39;edificio, tutto il resto è stato un po&amp;#39; deludente. Sicuramente complice il poco tempo e il nutrito buffet (qui li chiamano refreshment), il taglio dell&amp;#39;evento è stato molto poco tecnico e molto orientato al refreshment appunto.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="LINE-HEIGHT:20px;FONT-FAMILY:arial, sans-serif;FONT-SIZE:16px;" class="Apple-style-span"&gt;La cosa curiosa, per uno come me abituato alla sobrietà degli eventi Microsoft nostrani, è stato vedere - sempre durante il refreshment - quanto gli inglesi amino la birra &lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. Una cosa inconcepibile per noi che in genere ci riempiamo di caffè per restare sufficientemente svegli durante le sessioni, specie quelle pomeridiane.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="LINE-HEIGHT:20px;FONT-FAMILY:arial, sans-serif;FONT-SIZE:16px;" class="Apple-style-span"&gt;Io ho fatto quello che ho potuto armeggiando una bottiglia di birra rossa, ma per il momento i nostri colleghi inglesi sono inarrivabili, almeno da questo punto di vista.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="WIDOWS:2;TEXT-TRANSFORM:none;TEXT-INDENT:0px;BORDER-COLLAPSE:separate;FONT:medium &amp;#39;Times New Roman&amp;#39;;WHITE-SPACE:normal;ORPHANS:2;LETTER-SPACING:normal;WORD-SPACING:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;" class="Apple-style-span"&gt;&lt;span style="LINE-HEIGHT:20px;FONT-FAMILY:arial, sans-serif;FONT-SIZE:16px;" class="Apple-style-span"&gt;Unica consolazione la T-Shirt targata SQL che ho&amp;nbsp;preso al volo durante il lancio a fine serata da parte di Simon Sabin &lt;img src="http://community.ugiss.org/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8287" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/SQL+Social/default.aspx">SQL Social</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Birra/default.aspx">Birra</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/Londra/default.aspx">Londra</category></item><item><title>I love Triggers</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/01/28/i-love-triggers.aspx</link><pubDate>Fri, 28 Jan 2011 14:03:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:8033</guid><dc:creator>sgainz</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=8033</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=8033</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/01/28/i-love-triggers.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/SummeryOfConcercs.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ieri ho visto la sessione di Thomas Kejser del &lt;a title="SQL CAT" href="http://sqlcat.com/" target="_blank"&gt;SQL CAT&lt;/a&gt;&amp;nbsp;intitolata &amp;quot;&lt;a href="http://www.sqlbits.com/Sessions/Event7/Designing_High_Scale_OLTP_systems" target="_blank"&gt;Designing High Scale OLTP systems&lt;/a&gt;&amp;quot; e presentata all&amp;#39;ultimo SQLBits. Particolarmente&amp;nbsp;&amp;quot;curiosa&amp;quot; una slide&amp;nbsp;che presenta le possibili&amp;nbsp;soluzioni per implementare&amp;nbsp;l&amp;#39;aggiornamento del saldo di un conto al verificarsi di una transazione. Ebbene, &amp;quot;the winner is&amp;quot; il TRIGGER. &lt;img src="http://community.ugiss.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://community.ugiss.org/blogs/sgainz/SummeryOfConcercs.png"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/SummeryOfConcercs.png" width="437" height="218" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/HotRowsInAccount.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Spero che almeno adesso che lo dice il &lt;strong&gt;Customer Advisory Team di SQL Server&lt;/strong&gt;, qualcuno mi prenderà sul serio quando dico che ho un ottimo rapporto con i trigger e che non nuociono alla salute, anzi ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/HotRowsInAccount.png"&gt;&lt;/a&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/HotRowsInAccount2.png"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/HotRowsInAccount2.png" alt="" /&gt;&lt;/a&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/HotRowsInAccount.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=8033" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/SQL+CAT/default.aspx">SQL CAT</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/trigger/default.aspx">trigger</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/SQLBits/default.aspx">SQLBits</category></item><item><title>Add your script to SQL Scripts Manager (2)</title><link>http://community.ugiss.org/blogs/sgainz/archive/2011/01/07/add-your-script-to-sql-scripts-manager-2.aspx</link><pubDate>Fri, 07 Jan 2011 08:43:00 GMT</pubDate><guid isPermaLink="false">696bf4df-f0eb-4942-9326-ff40615b13e5:7998</guid><dc:creator>sgainz</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/rsscomments.aspx?PostID=7998</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.ugiss.org/blogs/sgainz/commentapi.aspx?PostID=7998</wfw:comment><comments>http://community.ugiss.org/blogs/sgainz/archive/2011/01/07/add-your-script-to-sql-scripts-manager-2.aspx#comments</comments><description>&lt;p&gt;Pronta&amp;nbsp;la versione compatibile con SQL Scripts Manager della mia procedura &amp;quot;&lt;span id="sites-page-title"&gt;&lt;a href="http://www.ugiss.org/Content/Article/Un-metodo-efficace-di-gestione-delle-autorizzazioni-utente.aspx"&gt;SQL Simple Authorization&lt;/a&gt;&amp;quot;:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="http://community.ugiss.org/blogs/sgainz/sql-scripts-manager.png"&gt;&lt;img border="0" src="http://community.ugiss.org/blogs/sgainz/sql-scripts-manager.png" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://community.ugiss.org/blogs/sgainz/SQLSimpleAuthorization.zip"&gt;SQLSimpleAuthorization.zip&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;Eccone la descrizione:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;em&gt;An efficient way of managing user permissions&lt;br /&gt;This script allows you to authorize a user or database role to access a certain mode (eg SELECT, DELETE, ALTER, ..) to all objects belonging to a database schema or any schema in your database.&lt;br /&gt;Split a database schema has several advantages, one of these is undoubtedly simplify management of user permissions. &lt;br /&gt;It is from this feature inspired this procedure, the basic idea is to encourage even the laziest database administrators to put aside political authorization management that make use of simplifications that go against the basic principle of security (. . see sysadmin and db_owner).&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://community.ugiss.org/aggbug.aspx?PostID=7998" width="1" height="1"&gt;</description><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/SQL+Scripts+Manager/default.aspx">SQL Scripts Manager</category><category domain="http://community.ugiss.org/blogs/sgainz/archive/tags/SQL+Simple+Authorization/default.aspx">SQL Simple Authorization</category></item></channel></rss>