<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   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/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
<channel>
    <title>.:: strefa ::.</title>
    <link>http://strefa.guzowski.info/</link>
    <description>Bazy danych i nie tylko.</description>
    <dc:language>pl</dc:language>
    <generator>Serendipity 1.1.3 - http://www.s9y.org/</generator>
    <pubDate>Tue, 15 Jul 2008 19:25:40 GMT</pubDate>

    <image>
        <url>http://strefa.guzowski.info/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: .:: strefa ::. - Bazy danych i nie tylko.</title>
        <link>http://strefa.guzowski.info/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Security Update for SQL Server 7.0 - 2005</title>
    <link>http://strefa.guzowski.info/archives/110,2008,07,09.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/110,2008,07,09.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=110</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=110</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Wczoraj opublikowana została poprawka bezpieczeństwa m.in. dla systemu SQL Server 2005 Service Pack 2, w którym wykryto lukę, pozwalającą na całkowite przejęcie kontroli nad systemem operacyjnym, na którym zainstalowany był SQL Server. Eskalujący uprawnienia mógłby instalować nowe oprogramowania, przeglądać, dodawać i usuwać dane czy np. zakładać konta administracyjne. Omawiana podatność ma związek z tym, jak SQL Server zarządza ponownym użyciem stron danych, alokuje pamięć dla funkcji CONVERT (podatność na przepełnienie bufora), waliduje wyrażenia INSERT oraz pliki dyskowe przed ich załadowaniem. Tak na prawdę problemem dotknięte są &lt;strong&gt;wszystkie&lt;/strong&gt; instacje SQL Server od wersji 7.0 do 2005 (dla poszczególnych wersji z najnowszymi SP istnieją już security update&#039;y). Poprawka została dodana z wysokim priorytetem do systemu aktualizacji automatycznych.&lt;br /&gt;
&lt;br /&gt;
Ze swojej strony mogę tylko powiedzieć, że z 8 lipca 2008 roku zakończyła się era pt. &quot;SQL Server 2005 bez łat bezpieczeństwa&quot;.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji i pobieranie:&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/technet/security/bulletin/ms08-040.mspx?pubDate=2008-07-08&quot;  title=&quot;Microsoft Security Bulletin MS08-040 – Important&quot;&gt;Microsoft Security Bulletin MS08-040 – Important&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=4c9851cc-2c4c-4190-872c-84993a7623b7&amp;amp;DisplayLang=en&quot;  title=&quot;Download: Security Update for SQL Server 2005 Service Pack 2 (KB948109)&quot;&gt;Download: Security Update for SQL Server 2005 Service Pack 2 (KB948109)&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://en.securitylab.ru/notification/355705.php&quot;  title=&quot;Security Lab: (MS08-040) Vulnerabilities in Microsoft SQL Server Could Allow Elevation of Privilege (941203)&quot;&gt;Security Lab: (MS08-040) Vulnerabilities in Microsoft SQL Server Could Allow Elevation of Privilege&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 09 Jul 2008 16:52:00 +0200</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/110,2008,07,09.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Virtual Earth -&gt; Geospatial Data Generator</title>
    <link>http://strefa.guzowski.info/archives/109,2008,07,09.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/109,2008,07,09.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=109</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=109</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Poniżej znajduje się link do onlineowego narzędzia pozwalającego na generowanie danych przestrzennych, a ściślej mówiąc - do generowania kodu T-SQL, który takie dane tworzy. Zasada działania jest bardzo prosta, wystarczy na mapie Virtual Earth narysować punkt, linę lub wielokąt, a po przyciśnięciu stosownego przycisku aplikacja zwraca kod T-SQL. Przykładowy kod T-SQL dla wielokąta mniej więcej pokrywającego terytorium Polski wygląda następująco:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;INSERT into GeographyTable (FeatureName, FeatureGeography) VALUES (&#039;PL&#039;, geography::STGeomFromText(&#039;POLYGON((54.36093094641741 19.863281249999993, 54.20700786353876 23.203125000000004, 52.689258590330645 24.16992187500001, 52.20715795048005 23.466796874999996, 50.561839289331495 24.433593750000004, 48.972525264287405 22.763671875000014, 49.14530462843307 20.7421875, 49.60311597568473 18.632812499999993, 50.45004279954988 16.78710937500001, 51.0616523133909 15.117187499999991, 52.58258094010119 14.853515624999998, 53.741780708568825 14.501953125000004, 54.565268084965936 17.314453124999993, 54.20700786353876 18.896484374999986, 54.36093094641741 19.863281249999993))&#039;, 4326))&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Widać więc, że typ tworzonych danych to &lt;em&gt;geography&lt;/em&gt;, który bazuje na długości i szerokości geograficznej.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://mikeo.co.uk/demo/sqlspatial/default.aspx&quot;  title=&quot;Virtual Earth -&gt; Sql Server 2008 Geospatial Data Generator&quot;&gt;Virtual Earth -&gt; Sql Server 2008 Geospatial Data Generator&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 09 Jul 2008 10:51:00 +0200</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/109,2008,07,09.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>SQL Server 2008 RTM w przyszłym tygodniu?</title>
    <link>http://strefa.guzowski.info/archives/108,2008,07,03.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/108,2008,07,03.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=108</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=108</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Pojawiają się przecieki, że Microsoft planuje wydać wersję RTM systemu SQL Server 2008 znacznie wcześniej niż sierpień/wrzesień (na te miesiące wskazywały dotychczasowe nieoficjalne wypowiedzi). Bezpośrednim źródłem tej informacji jest z resztą sam Microsoft, który w tym tygodniu przekazał intencję tak szybkiego wydania &lt;em&gt;Katmai&lt;/em&gt; dużym resellerom baz danych. W następnym tygodniu natomiast odbywa się Microsoft &lt;em&gt;Worldwide Partner Conference&lt;/em&gt;, czyli specjalna konferencja dla partnerów koncernu z Redmond, na którym to rzeczony koncern lubi oficjalnie ogłosić wydanie jakiejś nowej finalnej wersji swojego produktu. Można się więc spodziewać, że SQL Server 2008 RTM (Release To Manufacturing) ma sporą szansę zainstnieć oficjalnie na tej konferencji. Jak twierdzi przynajmniej część moich znajomym (a ja razem z nimi), byłoby to bardzo szybkie wydanie wersji RTM, biorąc pod uwagę niedawno opublikowaną wersję RC0. Trzeba pamiętać, że takie dość szaleńcze tempo już kiedyś zaowocowało problemami (w przypadku SP2 do SQL Server 2005). Bo jak mówi stare polskie przysłowie, &quot;jak się komuś spieszy, to się bug cieszy&quot;...&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://searchitchannel.techtarget.com/news/article/0,289142,sid96_gci1319791,00.html&quot;  title=&quot;TechTarget: SQL Server 2008 release news, SaaS angst on tap for Microsoft partner event&quot;&gt;TechTarget: SQL Server 2008 release news, SaaS angst on tap for Microsoft partner event&lt;/a&gt; 
    </content:encoded>

    <pubDate>Thu, 03 Jul 2008 09:09:04 +0200</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/108,2008,07,03.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Oficjalne logo SQL Server 2008</title>
    <link>http://strefa.guzowski.info/archives/107,2008,06,04.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/107,2008,06,04.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=107</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=107</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Wczoraj został ogłoszony publicznie logotyp SQL Server 2008. Wygląda on następująco:&lt;br /&gt;
&lt;!-- s9ymdb:20 --&gt;&lt;img width=&quot;363&quot; height=&quot;75&quot; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px; padding-top: 10px;&quot; src=&quot;http://strefa.guzowski.info/uploads/logo-header-sql08-dg.gif&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
&lt;br /&gt;
Według mnie wygląda fajnie. Z tego co wiem, to Microsoft nadal planuje wydać wersję RTM nowego SQLa w trzecim kwartale 2008 roku (niedawno słyszałem o końcu sierpnia).&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://blogs.msdn.com/wesleyb/archive/2008/06/03/sql-server-logo.aspx&quot;  title=&quot;MSDN Blogs: SQL Server Logo&quot;&gt;MSDN Blogs: SQL Server Logo&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 04 Jun 2008 08:55:00 +0200</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/107,2008,06,04.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>SQL Server 2005 SP3 w czwartym kwartale</title>
    <link>http://strefa.guzowski.info/archives/106,2008,04,16.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/106,2008,04,16.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=106</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=106</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Microsoft publicznie potwierdził, że dostarczy Service Pack 3 do SQL Server 2005. O sytuacji z wydaniem SP3 pisałem &lt;a href=&quot;http://strefa.guzowski.info/archives/102,2008,02,27.html&quot;  title=&quot;SQL Server 2005 Service Pack 3&quot;&gt;w tym poście&lt;/a&gt;. Informację podał do publicznej wiadomości Francois Ajenstat na blogu &lt;em&gt;The Data Platform Insider&lt;/em&gt; (link poniżej). SP3 będzie dostarczony w czwartym kwartale 2008 roku, czyli po wydaniu SQL Server 2008 w wersji RTM.&lt;br /&gt;
&lt;br /&gt;
Skoro już o service packach mowa, to dodam, że w pierwszej połowie 2008 roku Microsoft planuje także dostarczyć SP3 do systemu Windows XP.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://blogs.technet.com/dataplatforminsider/archive/2008/04/15/sql-server-2005-sp3-coming-soon.aspx&quot;  title=&quot;SQL Server 2005 SP3 - coming soon&quot;&gt;TechNet blogs: SQL Server 2005 SP3 - coming soon&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 16 Apr 2008 09:31:00 +0200</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/106,2008,04,16.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>V Spotkanie PLSSUG Lublin - Heroes {Community} Launch</title>
    <link>http://strefa.guzowski.info/archives/105,2008,03,25.html</link>
            <category>MS SQL Server</category>
            <category>Różne</category>
    
    <comments>http://strefa.guzowski.info/archives/105,2008,03,25.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=105</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=105</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    &lt;!-- s9ymdb:19 --&gt;&lt;img width=&quot;96&quot; height=&quot;96&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 10px;&quot; src=&quot;http://strefa.guzowski.info/uploads/plssug_logo.png&quot; alt=&quot;&quot;  /&gt;V Spotkanie PLSSUG Lublin odbędzie się 08 kwietnia 2008 roku, będzie to spotkanie launchowe - w całości poświęcone SQL Server 2008. Spotykamy się w standardowych godzinach (17:00-19:30) w standardowym miejscu (siedziba Anica System S.A.). Spotkanie będzie podzielone na trzy etapy - na początku odwiedzimy serwerownię Anica System, następnie zaprezentuję SQL Server 2008 i nową wizję platformy bazodanowej MS wraz z praktycznymi demami, a w trzeciej części różni członkowie grupy zaprezentują wybrane funkcjonalności nowego systemu. Plan spotkania nie jest sztywny, w razie potrzeby przeprowadzimy sesję SQL Server 2008 Q&amp;A, postaramy się też podsumować konferencję C2C. Wszystkich chętnych serdecznie zapraszam. Przypominam o konieczności rejestracji (link poniżej) i proszę jednocześnie o punktualne przybycie.&lt;br /&gt;
&lt;br /&gt;
Agenda spotkania:&lt;br /&gt;
17:00-17:30 - Wizyta w Anica System Data Center&lt;br /&gt;
17:30-18:15 - Nowości w SQL Server 2008 (Marcin Guzowski)&lt;br /&gt;
18:15-19:30 - SQL Server 2008: feature by feature (Członkowie PLSSUG Lublin)&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://groups.google.pl/group/plssug/web/lublin&quot;  title=&quot;Strona informacyjna PLSSUG Lublin&quot;&gt;Strona informacyjna PLSSUG Lublin&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://groups.google.pl/group/plssug/web/rejestracja-na-spotkania-lublin&quot;  title=&quot;PLSSUG Lublin: Rejestracja na spotkanie&quot;&gt;PLSSUG Lublin: Rejestracja na spotkanie&lt;/a&gt; 
    </content:encoded>

    <pubDate>Tue, 25 Mar 2008 09:34:22 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/105,2008,03,25.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>SQL Server 2008: fizyczny lokalizator wiersza</title>
    <link>http://strefa.guzowski.info/archives/104,2008,03,20.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/104,2008,03,20.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=104</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=104</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Nie od dziś wiadomo, że SQL Server dostarcza sporej liczby niesupportowanych i nieudokumentowanych procedur, funkcji czy komend DBCC. Najnowsza wersja, a konkretnie CTP6, nie odbiega od tej praktyki. Jedną z ciekawszych funkcjonalności tego typu, którą chciałbym zaprezentować, jest &lt;strong&gt;%%physloc%%&lt;/strong&gt;. Jest to specjalna właściwość systemowa (nazywana także wirtualną kolumną), zwracająca wartość typu &lt;em&gt;binary(8)&lt;/em&gt;, która działa wyłącznie w kontekście wiersza. Przy jej pomocy uzyskujemy tzw. &lt;em&gt;physical row locator&lt;/em&gt;, czyli binarnie zapisany RID rekordu:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;CREATE TABLE test&lt;br /&gt;
(&lt;br /&gt;
col int DEFAULT(0)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO test DEFAULT VALUES;&lt;br /&gt;
&lt;br /&gt;
SELECT &lt;strong&gt;%%physloc%%&lt;/strong&gt;, col FROM test;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Dostępne są także dwie nieudokumentowane funkcje - &lt;strong&gt;sys.fn_PhysLocFormatter&lt;/strong&gt; i &lt;strong&gt;sys.fn_PhysLocCracker&lt;/strong&gt;, które konwertują &lt;em&gt;%%physloc%%&lt;/em&gt; na klasyczny RID. Różnica między wymienionymi funkcjami polega wyłącznie na tym, że pierwsza zwraca wartość skalarną, a druga - jako &lt;em&gt;table valued function&lt;/em&gt; - tabelę (konkretnie - jeden rekord). W dalszych rozważaniach skupie się na pierwszej funkcji. &lt;br /&gt;
&lt;br /&gt;
Fizyczny lokalizator nie jest najbardziej widowiskową funkcjonalnością produkcyjną, ale w głowie prawdziwego SQL developera lub DBA na pewno pojawi się cały szereg pomysłowych jego zastosowań, zwłaszcza podczas zgłębiania tajników storage engine&#039;u, performance testów, czy zabaw z sortowaniem rekordów. Oczywiście nie ma gwarancji, że &lt;em&gt;%%physloc%%&lt;/em&gt; będzie dostępny także w wersji RTM, ale na razie wszystko na to wskazuje. Funkcję &lt;em&gt;sys.fn_PhysLocFormatter&lt;/em&gt; wywołujemy w następujący sposób:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;SELECT %&lt;br /&gt;
%physloc%% as PhysicalLocator,&lt;br /&gt;
&lt;strong&gt;sys.fn_PhysLocFormatter(%%physloc%%)&lt;/strong&gt; as RID&lt;br /&gt;
FROM test;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Powyższe zapytanie zwraca:&lt;br /&gt;
&lt;!-- s9ymdb:16 --&gt;&lt;img width=&quot;211&quot; height=&quot;39&quot; style=&quot;border: 0px; padding-top: 5px; padding-bottom: 0px;&quot; src=&quot;http://strefa.guzowski.info/uploads/physloc.png&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
&lt;br /&gt;
Dla przypomnienia: RID to numer składający się z 3 liczb całkowitych (file_id, page_id, slot_id).&lt;br /&gt;
&lt;br /&gt;
Do czego można wykorzystać powyższą funkcję? Choćby do udowodnienia, że tabela tymczasowa jest serializowana na dysk. Dowód opiera się oczywiście na głęboko prawdziwym założeniu, że jeśli coś ma RID, to musi istnieć w pliku bazy danych. Poniższy skrypt tworzy tabelę tymczasową, napełnia ją jednym rekordem, a następnie zwraca RID wiersza:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;CREATE TABLE #test&lt;br /&gt;
(&lt;br /&gt;
col int DEFAULT(0)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO #test DEFAULT VALUES;&lt;br /&gt;
&lt;br /&gt;
SELECT sys.fn_PhysLocFormatter(%%physloc%%) FROM #test;&lt;br /&gt;
&lt;br /&gt;
DROP TABLE #test;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Trzeba tylko pamiętać, że zwracana wartość, np. &lt;em&gt;(1:206:0)&lt;/em&gt; dotyczy bazy tempdb, nawet jeśli skrypt został wywołany w kontekście innej bazy. 
    </content:encoded>

    <pubDate>Thu, 20 Mar 2008 21:09:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/104,2008,03,20.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Szybko, tanio, dobrze</title>
    <link>http://strefa.guzowski.info/archives/103,2008,03,14.html</link>
            <category>Różne</category>
    
    <comments>http://strefa.guzowski.info/archives/103,2008,03,14.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=103</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=103</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Świat IT rządzi się rozmaitymi prawami i zależnościami. Jedna z najbardziej podstawowych zasad mówi, że spośród trzech cech - szybko, tanio, dobrze - można wybrać jedynie dwie, które łącznie staną się przeciwieństwem trzeciej. Określamy to mianem prawa dwóch trzecich, które da się wizualizować w następujący sposób:&lt;br /&gt;
&lt;!-- s9ymdb:15 --&gt;&lt;img width=&quot;242&quot; height=&quot;220&quot; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://strefa.guzowski.info/uploads/fast_good_cheap.jpg&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
Tak więc:&lt;br /&gt;
1. Dobrze i tanio nie znaczy szybko.&lt;br /&gt;
2. Dobrze i szybko nie znaczy tanio.&lt;br /&gt;
3. Szybko i tanio nie znaczy dobrze.&lt;br /&gt;
&lt;br /&gt;
Managerom pozostaje tylko wybór jednej z powyższych opcji. 
    </content:encoded>

    <pubDate>Fri, 14 Mar 2008 21:15:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/103,2008,03,14.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>SQL Server 2005 Service Pack 3</title>
    <link>http://strefa.guzowski.info/archives/102,2008,02,27.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/102,2008,02,27.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=102</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=102</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Tytuł sugeruje, że SQL Server 2005 SP3 powstał lub ma powstać. Tymczasem sytuacja jest wręcz przeciwna. Jak wiadomo, od czasów dostarczenia SP2 pojawiło się całe mnóstwo hotfixów, cumulative fixów, cumulative updatów tudzież innych update packagów. Nie znam już nikogo, kto by się w tym dobrze orientował (buildy mylą się nawet ludziom z MS...). W takiej sytuacji wiele osób nieśmiało oczekiwało na pojawienia się wybawcy, czyli dobrze przygotowanego i gruntownie przetestowanego SP3, który zawierałby remedium na wszystkie zidentyfikowane błędy i problemy. Byłby ponadto poprawką o statusie publicznym, a nie - dostępną na żądanie, jak w przypadków praktycznie wszystkich ostatnio wypuszczonych bugfixów.&lt;br /&gt;
&lt;br /&gt;
Jak na to wszystko patrzy Microsoft? Zupełnie odmiennie. Na forum dla MVP padło następujące stwierdzenie ze strony MS: &lt;em&gt;Good, but honestly, at least our management says, we&#039;re not getting feedback requesting SP3 from enough customers to require it&lt;/em&gt;. Sprawa jest więc prosta - koncern z Redmond wypuści SP3 dopiero w momencie, w którym wymuszą to na nim klienci. Na moment obecny nie ma żadnych planów dostarczenia kolejnego service packa do SQL Server 2005. Z pewnych źródeł wiem (nie powiem z jakich, bo musiałbym zostać zlikwidowany), że w SQL Server Teamie trwają prace nad przebudową modelu testowego (i kodu z nim związanego), ale odbywa się to z myślą o SQL Server 2008, a nie 2005. Pewnie MS liczy na to, że uda mu się gładko zastąpić przynajmniej część instancji SQL Server 2005 nową wersją, której istotnie dużo bliżej do 2005, niż w przypadku problematycznej migracji SQL Server 2000 do 2005. Oczywiście nie jest to koncepcja zupełnie pozbawiona sensu, ale rynek ma swoją bezwładność i może powstać spory problem, jeżeli na produkcji pozostanie całkiem sporo Yukonów.&lt;br /&gt;
&lt;br /&gt;
Oczywiście od razu znajdzie się ktoś, kto powie - ale w czym problem, przecież można poinstalować wszystkie cumulative updaty i problem z głowy. Otóż niezupełnie (już nawet pomijając problemy logistyczne z tym związane). Wszystkie ostatnie fixy powinny być instalowane jedynie w przypadku wystąpienia określonych problemów. Service pack natomiast instaluje się przede wszystkim po to, aby tych problemów uniknąć, zanim się pojawią.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=326575&quot;  title=&quot;Connect: Release Service Pack 3 for SQL Server 2005&quot;&gt;Connect: Release Service Pack 3 for SQL Server 2005&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://sqlblog.com/blogs/hugo_kornelis/archive/2008/02/01/want-a-service-pack-ask-for-it.aspx&quot;  title=&quot;Hugo Kornelis:  Want a Service Pack? Ask for it!&quot;&gt;Hugo Kornelis:  Want a Service Pack? Ask for it!&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 27 Feb 2008 21:34:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/102,2008,02,27.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Ciekawostki MSSQL: buffer cache z lotu ptaka</title>
    <link>http://strefa.guzowski.info/archives/101,2008,02,23.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/101,2008,02,23.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=101</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=101</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    &lt;em&gt;Buffer cache&lt;/em&gt; to specjalny kontener rezydujący wyłącznie w pamięci RAM, który przechowuje odczytane z dysku strony danych. Zawartość bufora jest natomiast odczytywana przez procesor kwerend i przetwarzana zgodnie z logiką zapytania. Odczyt jednej strony danych do bufora to tzw. odczyt fizyczny (&lt;em&gt;physical read&lt;/em&gt;), natomiast odczyt jednej strony danych z bufora do przestrzeni zapytania to tzw. odczyt logiczny (&lt;em&gt;logical read&lt;/em&gt;). Procesor kwerend nigdy bezpośrednio nie sięga do dysku (każda strona danych musi być najpierw odczytana do buffer cache). Po co to wszytko? Przede wszystkim po to, aby minimalizować obciążenie podsystemu IO (czyli dysków), gdyż odczyty logiczne są bardzo szybkie i nieobciążające, czego nie można powiedzieć o odczytach fizycznych. Jeżeli więc jakaś strona danych trafi do bufora, to kolejne zapytania nie będą musiały żądać pobrania tych danych z dysku. Naturalnie nie wszystkie strony danych mogą znaleźć się w buffer cache na dowolnie długi czas, ale przecież nie wszystkie strony są w danym momencie potrzebne. Drugim istotnym powodem istnienia bufora danych są kwestie związane z mechanizmem blokad niskopoziomowych typu &lt;em&gt;latch&lt;/em&gt; i ogólnie mówiąc - z implementacją współbieżności i transakcyjności. W systemie SQL Server mamy jeden buffer cache (zwany także buforem danych lub cachem danych) dla całej instancji, podobnie z resztą jak w przypadku tzw. &lt;em&gt;procedure cache&lt;/em&gt;, który to z kolei przechowuje plany zapytań kwerend ad-hoc i innych obiektów (jak procedury, triggery czy wydoki). Często możemy być zainteresowani uzyskaniem informacji na temat tego, jakie ilości danych przechowywane są w buforze danych w określonym momencie oraz tego, ile MB bufora przypada na strony danych pochodzące z poszczególnych baz. Do takich celów możemy wykorzystać poniższe zapytanie do widoku &lt;em&gt;sys.dm_os_buffer_descriptors&lt;/em&gt;:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;SELECT CASE &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;WHEN (GROUPING(database_id) = 1) THEN &#039;-- TOTAL --&#039;&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;ELSE DB_NAME(database_id)&lt;br /&gt;
END as &#039;Database name&#039;,&lt;br /&gt;
CAST(COUNT(page_id)/128.0 as numeric(8,2)) as MB&lt;br /&gt;
FROM &lt;strong&gt;sys.dm_os_buffer_descriptors&lt;/strong&gt;&lt;br /&gt;
WHERE database_id !=32767 &lt;br /&gt;
GROUP BY database_id&lt;br /&gt;
WITH ROLLUP&lt;br /&gt;
ORDER BY COUNT(page_id) DESC;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Trzeba pamiętać, że ilość pamięci RAM jest ograniczona i często procedure cache będzie rywalizował z buffer cache o przestrzeń do zaalokowania. Jeśli więc nagle z procedure cache wypadło nam większość planów zapytań, to warto ustalić przy pomocy powyższego zapytania, co dzieje się w buforze danych. Potencjalnie może się okazać, że tzw. &lt;em&gt;wild query&lt;/em&gt; (np. przypadkowy CROSS JOIN na wielkich zbiorach) spowodowało wrzucenie do buffer cache gigabajtów danych, co w konsekwencji nadmiernie ograniczyło przestrzeń dostępną dla procedure cache. 
    </content:encoded>

    <pubDate>Sat, 23 Feb 2008 15:00:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/101,2008,02,23.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>SQL Server 2008 February CTP (CTP6)</title>
    <link>http://strefa.guzowski.info/archives/100,2008,02,20.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/100,2008,02,20.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=100</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=100</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Wczoraj udostępniona została kolejna wersja &lt;em&gt;Community Technology Preview&lt;/em&gt; systemu SQL Server 2008, oznaczona jako CTP6 lub February CTP. Na pierwszy rzut oka lista zmian nie jest w przypadku nowego CTP tak imponująca, jak przy CTP5 - co nie oznacza, że brakuje ciekawych ulepszeń. Dodano np. funkcjonalność indeksów filtrowanych, kompresję danych i indeksów, a z rzeczy praktycznych - lepsze Intellisense. Pełna lista improvements obejmuje &lt;strong&gt;15&lt;/strong&gt; pozycji:&lt;br /&gt;
- Read-only SSAS shared scaleout,&lt;br /&gt;
- Support for Microsoft Word rendering,&lt;br /&gt;
- Data visualization enhancements,&lt;br /&gt;
- Report design enhancements in BI Development Studio,&lt;br /&gt;
- Throughput enhancements,&lt;br /&gt;
- Full-text Search (iFTS),&lt;br /&gt;
- Filtered indexes,&lt;br /&gt;
- Sparse columns,&lt;br /&gt;
- Microsoft Sync support,&lt;br /&gt;
- Policy-Based Mamanagement completeness,&lt;br /&gt;
- Performance Data Collection,&lt;br /&gt;
- Intellisense enhancements,&lt;br /&gt;
- Failover cluster,&lt;br /&gt;
- SQL Audit,&lt;br /&gt;
- Data compression.&lt;br /&gt;
&lt;br /&gt;
Po raz pierwszy do wersji CTP Microsoft udostępnił także &lt;strong&gt;Feature Pack CTP&lt;/strong&gt;, czyli zestaw dodatkowych komponentów, które rozszerzają możliwości środowiska. W jego skład wchodzą:&lt;br /&gt;
- Microsoft SQL Server 2008 Native Client,&lt;br /&gt;
- Microsoft SQL Server 2005 Backward Compatibility Components,&lt;br /&gt;
- Microsoft SQL Server 2008 Reporting Services Add-in for Microsoft SharePoint Technologies.&lt;br /&gt;
&lt;br /&gt;
Obraz z SQL Server 2008 CTP6 zajmuje około 1.3 GB, natomiast Feature Pack to maksymalnie 140 MB.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5395&quot;  title=&quot;SQL Server 2008 CTP&quot;&gt;SQL Server 2008 CTP&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=749BD760-F404-4D45-9AC0-D7F1B3ED1053&amp;amp;displaylang=en&quot;  title=&quot;Download: Microsoft SQL Server 2008 CTP, February 2008&quot;&gt;Download: Microsoft SQL Server 2008 CTP, February 2008&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyId=D68DE3C9-60A9-49C9-A28C-5C46BBC3356F&amp;amp;displaylang=en&quot;  title=&quot;Download: Microsoft SQL Server 2008 Feature Pack CTP, February 2008&quot;&gt;Download: Microsoft SQL Server 2008 Feature Pack CTP, February 2008&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 20 Feb 2008 10:21:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/100,2008,02,20.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>IV Spotkanie PLSSUG Lublin</title>
    <link>http://strefa.guzowski.info/archives/99,2008,02,18.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/99,2008,02,18.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=99</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=99</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    &lt;!-- s9ymdb:8 --&gt;&lt;img width=&quot;100&quot; height=&quot;105&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://strefa.guzowski.info/uploads/LogoPLSSUG_100.serendipityThumb.gif&quot; alt=&quot;&quot;  /&gt;Dnia 04 marca 2008 roku planowane jest IV spotkanie grupy PLSSUG Lublin. Godziny spotkania (17:00-19:00 z możliwością przedłużenia) oraz miejsce (siedziba firmy Anica System S.A.) nie zmieniają się. Jeżeli chodzi o meritum spotkania, to rozpoczniemy od niezakończonej na poprzednim spotkaniu sesji Bartka Matosiuka dotyczącej data minigu. Następnie Marcin Borecki opowie o Language Integrated Query (LINQ). Obydwie sesje zapowiadają się bardzo ciekawie. Prelegenci IV spotkania - podobnie jak prowadzący sesję na trzech pierwszych spotkaniach - otrzymają nagrody. Na pewno przeprowadzimy także co najmniej jeden konkurs, w którym będzie można wygrać oryginalne gadżety. Zainteresowanych serdecznie zapraszam, przypominając jednocześnie o konieczności rejestracji na każde spotkanie PLSSUG. Na moment obecny na IV spotkanie zarejestrowanych jest 12 osób na nieco ponad 30 dostępnych miejsc. Przy okazji informuję, że kilka dni temu Culminis przysłał certyfikat członkowski dla PLSSUG Lublin. Wygląda on tak:&lt;br /&gt;
&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://strefa.guzowski.info/uploads/culminis_cert.jpg&#039;&gt;&lt;!-- s9ymdb:13 --&gt;&lt;img width=&quot;110&quot; height=&quot;85&quot; style=&quot;border: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px; padding-bottom: 0px;&quot; src=&quot;http://strefa.guzowski.info/uploads/culminis_cert.serendipityThumb.jpg&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Agenda spotkania:&lt;br /&gt;
17:00-17:15 - Kwestie organizacyjne (Marcin Guzowski)&lt;br /&gt;
17:15-18:05 - Wprowadzenie do data miningu (Bartosz Matosiuk)&lt;br /&gt;
18:05-19:00 - LINQ (Marcin Borecki)&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://groups.google.pl/group/plssug/web/lublin&quot;  title=&quot;Strona informacyjna PLSSUG Lublin&quot;&gt;Strona informacyjna PLSSUG Lublin&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://groups.google.pl/group/plssug/web/rejestracja-na-spotkania-lublin&quot;  title=&quot;PLSSUG Lublin: Rejestracja na spotkanie&quot;&gt;PLSSUG Lublin: Rejestracja na spotkanie&lt;/a&gt; 
    </content:encoded>

    <pubDate>Mon, 18 Feb 2008 20:29:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/99,2008,02,18.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Ciekawostki MSSQL: Postęp niektórych operacji</title>
    <link>http://strefa.guzowski.info/archives/98,2008,02,12.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/98,2008,02,12.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=98</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=98</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Pytanie: czy na SQL Server 2005 da się zobaczyć, jaki jest postęp operacji ROLLBACK?&lt;br /&gt;
&lt;br /&gt;
Odpowiedź brzmi: tak. Niektóre operacje (DBCC CHECKDB, DBCC SHRINKDATABASE, DBCC SHRINKFILE, BACKUP DATABASE, ROLLBACK) wewnętrznie notyfikują postęp operacji. Do informacji tej można dotrzeć przy pomocy odpowiednich kolumn widoku systemowego &lt;em&gt;sys.dm_exec_requests&lt;/em&gt;:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;SELECT start_time, &lt;strong&gt;percent_complete&lt;/strong&gt;, &lt;strong&gt;estimated_completion_time&lt;/strong&gt;&lt;br /&gt;
FROM sys.dm_exec_requests;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
W powyższy sposób nie da się natomiast określić postępu zwracania danych działającego zapytania. Jeżeli chodzi o postęp transakcji, to można różnymi wysoce niestandardowymi i przybliżonymi metodami próbować szacować ilość rekordów, jaka pojawia się w dzienniku transakcyjnym. Na tej podstawie możemy wnioskować, czy dana transakcja rzeczywiście modyfikuje w danym momencie dane i jakie jest względne tempo tych modyfikacji. Wykorzystamy do tego celu funkcję &lt;em&gt;fn_dblog()&lt;/em&gt;. 
    </content:encoded>

    <pubDate>Tue, 12 Feb 2008 11:14:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/98,2008,02,12.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Stany oczekiwań w SQL Server 2008</title>
    <link>http://strefa.guzowski.info/archives/97,2008,02,10.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/97,2008,02,10.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=97</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=97</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    Jak nie od dziś wiadomo, SQL Sever 2008 November CTP (CTP5) wprowadził szereg nowych funkcjonalności, jak choćby Resource Governor, SSMS z Intelli Sense dla składni T-SQL, FILESTREAM, plan freezing czy kompresja backupów. Są to nowości bardzo medialne i informacja o nich pojawia się praktycznie na wszystkich blogach, stronach, webcastach itd. Warto jednak wspomnieć, że w najnowszej wersji silnika SQL Server mamy także do czynienia z dużą grupą zmian wewnętrznych, mniej widowiskowych, które jednak są równie istotne. W tym poście chciałbym się przyjrzeć ulepszeniom i modyfikacjom, jakie dotyczą statystyk stanów oczekiwań.&lt;br /&gt;
&lt;br /&gt;
Zacznijmy od rzeczy oczywistych, czyli od centralnego widoku systemowego &lt;strong&gt;sys.dm_os_wait_stats&lt;/strong&gt;. Pierwsza różnica polega na tym, że znacznie przybyło nowych stanów oczekiwań. Liczba typów stanów oczekiwań w SQL Server 2005 wynosiła 201 (250 po włączeniu specjalnej flagi 8001 - &lt;em&gt;DBCC TRACEON (8001,-1) &lt;/em&gt;), natomiast w November CTP typów stanów oczekiwań jest aż 463, czyli ponad 200 więcej. Flaga 8001 już nie powoduje pojawienia się dodatkowych rekordów w widoku. Rola i struktura samego widoku pozostała bez zmian. Nadal agreguje on informacje o globalnych stanach oczekiwań od początku działania instancji lub ostatniego resetu na zasadzie przyrostowej. Nowe stany oczekiwań wiążą się po części z nowymi mechanizmami, jakie funkcjonują w Katmai. Ale to nie wszystko - jest też druga grupa. Nazwy 189 nowych stanów oczekiwań zaczynają się od przedrostka &lt;em&gt;PREEMPTIVE_&lt;/em&gt;. Nie są to bynajmniej stany &quot;martwe&quot; (agregują konkretne oczekiwania). Wydaje się, że dotyczą bardzo wewnętrznych kwestii systemu operacyjnego SQL Server - SQLOS (m.in. &lt;em&gt;PREEMPTIVE_OS_WAITFORSINGLEOBJECT&lt;/em&gt;, &lt;em&gt;PREEMPTIVE_OS_WRITEFILEGATHER&lt;/em&gt;). Jeżeli stany te nie zostaną usunięte w wersji RTM, to będziemy mogli oglądać ciekawe informacje statystyczne, o ile tylko stany typu PREEMPTIVE zostaną dobrze opisane.&lt;br /&gt;
&lt;br /&gt;
Jeżeli chodzi o statystyki globalnych stanów oczekiwań (wypadkowych dla danej instancji - widok DMV &lt;em&gt;sys.dm_os_wait_stats&lt;/em&gt;), to w SQL Server 2008 stosujemy dokładnie taką samą metodę, jak w przypadku SQL Server 2005. Możemy więc wykorzystać choćby &lt;a href=&quot;http://dev.guzowski.info/files/waitstats.sql&quot;&gt;ten skrypt&lt;/a&gt;, który przygotowałem specjalnie dla SQL Server 2005. Uruchomienie go na odciążonych instancjach SQL Server 2008 i SQL Server 2005 pokazuje ciekawe różnice. Dla Katmai otrzymamy następujące niezerowe stany oczekiwań:&lt;br /&gt;
&lt;!-- s9ymdb:12 --&gt;&lt;img width=&quot;623&quot; height=&quot;153&quot; style=&quot;border: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px; padding-bottom: 0px;&quot; src=&quot;http://strefa.guzowski.info/uploads/waits2008.gif&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
&lt;br /&gt;
Podczas gdy na SQL Server 2005 sytuacja wygląda następująco:&lt;br /&gt;
&lt;!-- s9ymdb:11 --&gt;&lt;img width=&quot;575&quot; height=&quot;77&quot; style=&quot;border: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px; padding-bottom: 0px;&quot; src=&quot;http://strefa.guzowski.info/uploads/waits2005.gif&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
&lt;br /&gt;
Jak widać, różnice są dość zasadnicze. Analizując statystyki stanów oczekiwań na SQL Server 2008, więcej stanów oczekiwań należy rozpatrywać jako nieszkodliwe (m.in. &lt;em&gt;REQUEST_FOR_DEADLOCK_SEARCH&lt;/em&gt;, &lt;em&gt;BROKER_TO_FLUSH&lt;/em&gt;).&lt;br /&gt;
&lt;br /&gt;
Istotne ulepszenie dotyczy pewnej niedogodności związanej z widokiem &lt;strong&gt;sys.dm_os_waiting_tasks&lt;/strong&gt;. W SQL Server 2005 widok ten dawał informacje o statystykach oczekiwania sesji, które aktualnie na coś czekają. Były to więc informacje niezmiernie ulotne - oczekiwania są przecież bardzo chwilowe, jeśli więc sesja przestawała czekać lub zmieniała typ oczekiwania, to albo znikała z widoku, albo statystyki oczekiwań resetowały się. Nie było więc łatwego sposobu, żeby w środowisku produkcyjnym uzyskać informacje o tym, jakie są statystyki stanów oczekiwań konkretnego zapytania. Co prawda w SQL Server 2008 widok DMV &lt;em&gt;sys.dm_os_waiting_tasks&lt;/em&gt; działa na takiej samej zasadzie, mamy jednak do dyspozycji nowy mechanizm - &lt;strong&gt;Extended Events&lt;/strong&gt; wraz ze zdarzeniem rozszerzonym &lt;strong&gt;wait_info&lt;/strong&gt;:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;SELECT &lt;br /&gt;
o.name as event_name,&lt;br /&gt;
c.name as column_name,&lt;br /&gt;
c.column_id,&lt;br /&gt;
c.column_type&lt;br /&gt;
FROM sys.dm_xe_objects o JOIN sys.dm_xe_object_columns c&lt;br /&gt;
ON (o.name = c.object_name)&lt;br /&gt;
WHERE o.name = &#039;wait_info&#039;;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Powyższe zapytania pokazuje, jakie informacje możemy uzyskiwać o stanach oczekiwań przy pomocy XEvents:&lt;br /&gt;
&lt;!-- s9ymdb:10 --&gt;&lt;img width=&quot;335&quot; height=&quot;248&quot; style=&quot;border: 0px; padding-left: 0px; padding-right: 0px; padding-top: 5px; padding-bottom: 0px;&quot; src=&quot;http://strefa.guzowski.info/uploads/xevent_wait_info.gif&quot; alt=&quot;&quot;  /&gt;&lt;br /&gt;
&lt;br /&gt;
Wykorzystanie XEvents nie jest może najwygodniejsze, bo to zupełnie nowy framework współpracujący z ETW (&lt;em&gt;Event Tracing for Windows&lt;/em&gt;), poniższy skrypt powinien jednak trochę rozjaśnić całą koncepcję:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;BEGIN TRY &lt;br /&gt;
DROP EVENT SESSION waitinfo_session ON SERVER;&lt;br /&gt;
END TRY&lt;br /&gt;
BEGIN CATCH END CATCH&lt;br /&gt;
GO&lt;br /&gt;
&lt;br /&gt;
CREATE EVENT SESSION waitinfo_session ON SERVER&lt;br /&gt;
ADD EVENT &lt;strong&gt;sqlos.wait_info&lt;/strong&gt;&lt;br /&gt;
ADD TARGET package0.etw_classic_sync_target&lt;br /&gt;
(SET default_etw_session_logfile_path = N&#039;C:\temp\waitinfo.etl&#039;);&lt;br /&gt;
GO&lt;br /&gt;
&lt;br /&gt;
ALTER EVENT SESSION waitinfo_session ON SERVER STATE = START;&lt;br /&gt;
GO&lt;br /&gt;
&lt;br /&gt;
-- workload&lt;br /&gt;
-- (..)&lt;br /&gt;
&lt;br /&gt;
ALTER EVENT SESSION waitinfo_session ON SERVER STATE = STOP;&lt;br /&gt;
GO&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Aby powyższy skrypt zadziałał, trzeba kilku rzeczy dopilnować. Co oczywiste, konto, na którym działa usługa SQL Server, musi mieć dostęp do katalogu &lt;em&gt;C:\temp&lt;/em&gt;. Co mniej oczywiste, konto powinno także należeć do dwóch grup - &lt;em&gt;Performance Monitor Users&lt;/em&gt; i &lt;em&gt;Performance Log Users&lt;/em&gt;. Niestety standardowa instalacja November CTP nie dodaje konta do drugiej grupy. Po dodaniu konta do odpowiednich grup może być wymagany restart instancji.&lt;br /&gt;
&lt;br /&gt;
Kiedy zagregujemy już odpowiednie dane do pliku &lt;em&gt;waitinfo.etl&lt;/em&gt;, warto je jakoś odczytać. W tym celu należy skonwertować plik ETL do bardziej przyjaznego formatu - CSV. Wykonamy więc następującą operację:&lt;br /&gt;
&lt;p class=&quot;code&quot;&gt;tracerpt waitinfo.etl&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
Otrzymamy dwa pliki: &lt;em&gt;dumpfile.csv&lt;/em&gt; oraz &lt;em&gt;summary.txt&lt;/em&gt;, z nich łatwiej odczytamy interesujące nas informacje. Dane te będzie jeszcze trzeba wrzucić do tabeli i odpowiednio powiązać, aby dostarczyły nam tego, czego oczekujemy. Widać więc, że badanie stanów oczekiwań z XEvents jest jeszcze niedopracowane i wymaga szeregu poprawek i uproszczeń. W każdym razie mi nie udało się w prosty sposób zmusić tego do efektywnej pracy zgodnej z moimi oczekiwaniami, ale pożyjemy - zobaczymy.&lt;br /&gt;
&lt;br /&gt;
To tyle na moment obecny, jeśli zauważę jakieś dodatkowe ulepszenia lub różnice w obszarze tematyki stanów oczekiwań w SQL Server 2008, to w pierwszej wolnej chwili o tym napiszę. 
    </content:encoded>

    <pubDate>Sun, 10 Feb 2008 18:50:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/97,2008,02,10.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>III Spotkanie PLSSUG Lublin</title>
    <link>http://strefa.guzowski.info/archives/96,2008,01,25.html</link>
            <category>MS SQL Server</category>
    
    <comments>http://strefa.guzowski.info/archives/96,2008,01,25.html#comments</comments>
    <wfw:comment>http://strefa.guzowski.info/wfwcomment.php?cid=96</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://strefa.guzowski.info/rss.php?version=2.0&amp;type=comments&amp;cid=96</wfw:commentRss>
    

    <author>nospam@example.com (Marcin Guzowski)</author>
    <content:encoded>
    &lt;!-- s9ymdb:8 --&gt;&lt;img width=&quot;100&quot; height=&quot;105&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://strefa.guzowski.info/uploads/LogoPLSSUG_100.serendipityThumb.gif&quot; alt=&quot;&quot;  /&gt;Trzecie spotkanie PLSSUG Lublin odbędzie się 05 lutego 2008 roku w standardowych godzinach 17:00-19:00 (z możliwością przedłużenia). Jak zwykle spotykamy się w siedzibie firmy Anica System S.A. Tym razem planujemy dwie sesje tematyczne - jedną z obszaru optymalizacji zapytań (Sebastiana) i drugą, stanowiącą wstęp do tematyki data miningu (Bartka). Na spotkaniu zostaną także przeglądowa zaprezentowane produkty jednego z naszych sponsorów (RedGate Software), a zasłużonym uczestnikom grupy (przede wszystkim prelegentom) zostaną rozdane nagrody nadesłane przez Microsoft i firmę RedGate (książki i różnego rodzaju gadżety - od koszulek po pendrivy). Wszystkich zainteresowanych serdecznie zapraszam, jednocześnie przypominając o konieczności każdorazowej rejestracji na spotkanie. Jak widać spotykamy się mniej więcej raz na miesiąc, więc nie jest to chyba dla nikogo specjalnie uciążliwe i tym bardziej namawiam do zaangażowania w działalność grupy. Zachęcam przede wszystkim do prowadzenia sesji, ale prosiłbym także o kontakt wszystkich chętnych, którzy chcą pomóc w organizacyjnej stronie przedsięwzięcia. Posiadanie olbrzymiej wiedzy nie jest wcale wymagane, aby zaistnieć na grupie.&lt;br /&gt;
&lt;br /&gt;
Agenda spotkania:&lt;br /&gt;
17:00-17:15 - Kwestie organizacyjne (Marcin Guzowski)&lt;br /&gt;
17:15-18:05 - Dobry plan to podstawa - plan forcing, plan guides, parametryzacja (Sebastian Bratko) &lt;br /&gt;
18:05-18:15 - Produkty RedGate (Marcin Guzowski)&lt;br /&gt;
18:15-19:00 - Wprowadzenie do data miningu (Bartosz Matosiuk)&lt;br /&gt;
&lt;br /&gt;
Więcej informacji:&lt;br /&gt;
&lt;a href=&quot;http://groups.google.pl/group/plssug/web/lublin&quot;  title=&quot;Strona informacyjna PLSSUG Lublin&quot;&gt;Strona informacyjna PLSSUG Lublin&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://groups.google.pl/group/plssug/web/rejestracja-na-spotkania-lublin&quot;  title=&quot;PLSSUG Lublin: Rejestracja na spotkanie&quot;&gt;PLSSUG Lublin: Rejestracja na spotkanie&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 25 Jan 2008 17:52:00 +0100</pubDate>
    <guid isPermaLink="false">http://strefa.guzowski.info/archives/96,2008,01,25.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>

</channel>
</rss>