<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Poligon IT &#187; SQL Server 2005</title>
	<atom:link href="http://poligonit.pl/lang/en-us/tag/mssql/feed" rel="self" type="application/rss+xml" />
	<link>http://poligonit.pl</link>
	<description>Całe to nasze IT w jednym miejscu.</description>
	<lastBuildDate>Thu, 12 Aug 2010 11:56:05 +0000</lastBuildDate>
	<language>en-us</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Partycjonowanie tabeli w SQL Server 2005</title>
		<link>http://poligonit.pl/lang/en-us/partycjonowanie-tabeli-w-sql-server-2005</link>
		<comments>http://poligonit.pl/lang/en-us/partycjonowanie-tabeli-w-sql-server-2005#comments</comments>
		<pubDate>Thu, 23 Jul 2009 08:24:05 +0000</pubDate>
		<dc:creator>carlx</dc:creator>
				<category><![CDATA[sql server]]></category>
		<category><![CDATA[SQL Server 2005]]></category>

		<guid isPermaLink="false">http://poligonit.pl/?p=52</guid>
		<description><![CDATA[Krótko na temat jak spartycjonować sobie tabele w Sql Serverze 2005.  Tabelkę którą będę partycjonował jest tabela z historią operacji, kolumną która posłuży mi do spartycjonowania tejże tabeli będzie data wykononia operacji. Operacje będą partycjonowane po latach. Zaczynamy Pierwszą rzeczą którą musimy zrobić jest utworzenie grup plików i plików partycji. dla mojego przykładu utworzyłem następujące [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 		BLOCKQUOTE { margin-left: 1cm; margin-right: 1cm } --><span style="color: #e6e6ff;"><span>Krótko na temat jak spartycjonować sobie tabele w Sql Serverze 2005.  Tabelkę którą będę partycjonował jest tabela z historią operacji, kolumną która posłuży mi do spartycjonowania tejże tabeli będzie data wykononia operacji. Operacje będą partycjonowane po latach.</span></span></p>
<p><span style="color: #e6e6ff;"><span><span id="more-52"></span><br />
</span></span></p>
<p><span style="color: #e6e6ff;">Zaczynamy</span></p>
<p><span style="color: #e6e6ff;">Pierwszą rzeczą którą musimy zrobić jest utworzenie grup plików i plików partycji.</span></p>
<p><span style="color: #e6e6ff;">dla mojego przykładu utworzyłem następujące grupy plików i pliki.</span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">OPER1996LOWER (operacje &#60; 1996 rok)</span></span></span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">OPER1996</span></span></span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">OPER1997</span></span></span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">&#8230;</span></span></span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">OPER2011</span></span></span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">OPER2012</span></span></span></p>
<p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">OPER2012UPPER (operacje &#62; 2012)</span></span></span></p>
<p><span style="color: #e6e6ff;">czyli łącznie 19 grup i plików</span></p>
<p><span style="color: #e6e6ff;">Grupy plików możemy sobie wy listować w następujący sposób :</span></p>
<blockquote><p><span style="color: #e6e6ff;"><span style="font-family: Courier New,Courier,mono;"><span style="font-size: x-small;"><span style="font-family: Courier New,monospace;">SELECT name as [File Group Name]<br />
FROM sys.filegroups<br />
WHERE type = &#8216;FG&#8217;</span> </span></span></span></p></blockquote>
<p><span style="color: #e6e6ff;">Następną czynnością jest utworzenie funkcji partycji &#8220;partition function&#8221;</span></p>
<blockquote style="margin-bottom: 0cm; text-align: left;"><p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">CREATE PARTITIO FUCTIO [OperatiosDateRagePF1](datetime) AS RAGE RIGHT FOR VALUES (&#8217;1996-01-01&#8242;, &#8217;1997-01-01&#8242;, &#8217;1998-01-01&#8242;, &#8217;1999-01-01&#8242;, &#8217;2000-01-01&#8242;, &#8217;2001-01-01&#8242;, &#8217;2002-01-01&#8242;, &#8217;2003-01-01&#8242;, &#8217;2004-01-01&#8242;, &#8217;2005-01-01&#8242;, &#8217;2006-01-01&#8242;, &#8217;2007-01-01&#8242;, &#8217;2008-01-01&#8242;, &#8217;2009-01-01&#8242;, &#8217;2010-01-01&#8242;, &#8217;2011-01-01&#8242;, &#8217;2012-01-01&#8242;, &#8217;2013-01-01&#8242;)</span></span></span></p></blockquote>
<table border="1" cellspacing="0" cellpadding="4" width="100%" bordercolor="#000000">
<col width="129*"></col>
<col width="127*"></col>
<tbody>
<tr bgcolor="#cccccc">
<td colspan="2" width="100%" bgcolor="#ff0000"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;"><strong>Range 			RIGHT translation</strong></span></span></span></td>
</tr>
<tr bgcolor="#cccccc">
<td width="50%" bgcolor="#ff0000"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">Operacje 			data wykonania</span></span></span></td>
<td width="50%" bgcolor="#ff0000"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">Partycja</span></span></span></td>
</tr>
<tr>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">&#60; 			1996-01-01</span></span></span></td>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">OPER1996LOWER</span></span></span></td>
</tr>
<tr>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">&#62;=1996-01-01 			and &#60; 1997-01-01 </span></span></span></td>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">OPER1996</span></span></span></td>
</tr>
<tr>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">&#62;=1997-01-01 			and &#60; 1998-01-01 </span></span></span></td>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">OPER1997</span></span></span></td>
</tr>
<tr>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">&#8230;&#8230;</span></span></span></td>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">&#8230;&#8230;.</span></span></span></td>
</tr>
<tr>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">&#62;=2013-01-01</span></span></span></td>
<td width="50%"><span style="color: #e6e6ff;"><span style="font-family: Arial;"><span style="font-size: x-small;">OPER2012UPPER</span></span></span></td>
</tr>
</tbody>
</table>
<p><span style="color: #e6e6ff;">&#8220;Partition function&#8221; podpinamy pod &#8220;partition schema &#8221; który tworzymy następującą komendą </span></p>
<blockquote style="margin-left: 1.01cm; margin-right: 8cm; margin-bottom: 0cm;"><p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">CREATE PARTITION SCHEME [OperationsPartitionScheme] AS PARTITION [OperationsDateRangePF1] TO ([OPER1996LOWER], [OPER1996], [OPER1997], [OPER1998], [OPER1999], [OPER2000], [OPER2001], [OPER2002], [OPER2003], [OPER2004], [OPER2005], [OPER2006], [OPER2007], [OPER2008], [OPER2009], [OPER2010], [OPER2011], [OPER2012], [OPER2012UPPER])</span></span></span></p></blockquote>
<p><span style="color: #e6e6ff;"><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">Teraz pozostaje już tylko utworzenie tabelki i podpięcie jej do schematu partycji:</span></span></span></p>
<blockquote style="margin-left: 1.06cm; margin-right: 8cm; margin-bottom: 0cm;"><p><span style="color: #e6e6ff;"><span style="font-family: Courier New,monospace;"><span style="font-size: x-small;">CREATE TABLE Operacje<br />
(data_w datetime,<br />
kwota decima(10,2))<br />
ON OperationsPartitionScheme</span> <span style="font-size: x-small;">(data_w); </span></span></span></p></blockquote>
<p><span style="color: #e6e6ff;"><span style="font-size: small;">Ok mamy spartycjonowaną tabelkę i możemy załadować do niej dane <img src='http://poligonit.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://poligonit.pl/lang/en-us/partycjonowanie-tabeli-w-sql-server-2005/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Procedura generująca wymiar czasu dla kostki OLAP.</title>
		<link>http://poligonit.pl/lang/en-us/procedura-generujaca-wymiar-czasu-dla-kostki-olap</link>
		<comments>http://poligonit.pl/lang/en-us/procedura-generujaca-wymiar-czasu-dla-kostki-olap#comments</comments>
		<pubDate>Thu, 05 Feb 2009 12:09:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[sql server]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[time dimension]]></category>

		<guid isPermaLink="false">http://poligonit.pl/?p=22</guid>
		<description><![CDATA[W odmętach internetu znalazłem procedurę tworzącą tablicę, która posłuży nam do tworzenia hierarchii czasu w naszych kostkach. set datefirst 1 declare @start_date datetime ,@end_date datetime ,@loop_day datetime ,@diff int ,@loop int Select @start_date =&#8217;1950-01-01&#8242; &#8212; Adjust as per need ,@end_date = &#8217;2050-12-31&#8242; ,@loop = 0 select @diff = datediff(dd,@start_date,@end_date) CREATE TABLE [Time_Dimension] ( [Time_ID] [int] [...]]]></description>
			<content:encoded><![CDATA[<p>W odmętach internetu znalazłem procedurę tworzącą tablicę, która posłuży nam do tworzenia hierarchii czasu w naszych kostkach.</p>
<p><span id="more-22"></span></p>
<blockquote><p>set datefirst 1<br />
declare<br />
 @start_date datetime<br />
 ,@end_date datetime<br />
 ,@loop_day datetime<br />
 ,@diff int<br />
 ,@loop int</p>
<p>Select<br />
 @start_date =&#8217;1950-01-01&#8242; &#8212; Adjust as per need<br />
 ,@end_date = &#8217;2050-12-31&#8242;<br />
 ,@loop = 0</p>
<p>select<br />
 @diff = datediff(dd,@start_date,@end_date)</p>
<p>CREATE TABLE [Time_Dimension] (<br />
 [Time_ID] [int] identity(1,1) primary key,<br />
 [Cal_Date] [datetime] NULL ,<br />
 [The_Date] [int] NULL ,<br />
 [The_Day] [varchar] (20),<br />
 [The_Month_No] [int] NULL ,<br />
 [The_Year] [int] NULL ,<br />
 [The_Quarter] [varchar] (2),<br />
) ON [PRIMARY]</p>
<p>while @loop <= @diff<br />
begin<br />
 select @loop_day = dateadd(dd,@loop,@start_date)<br />
 insert into [Time_Dimension]<br />
 select<br />
  @loop_day<br />
  ,datepart(dd,@loop_day)<br />
  ,case datepart(dw,@loop_day)<br />
   when 1 then 'Poniedziałek'<br />
   when 2 then 'Wtorek'<br />
   when 3 then 'Środa'<br />
   when 4 then 'Czwartek'<br />
   when 5 then 'Piątek'<br />
   when 6 then 'Sobota'<br />
   when 7 then 'Niedziela'<br />
  end<br />
  ,datepart(mm,@loop_day)<br />
  ,datepart(yy,@loop_day)<br />
  ,'Q'+convert(varchar,datepart(qq,@loop_day))</p>
<p> select<br />
  @loop = @loop + 1<br />
end
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://poligonit.pl/lang/en-us/procedura-generujaca-wymiar-czasu-dla-kostki-olap/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Co warto mierzyć w Sql Server</title>
		<link>http://poligonit.pl/lang/en-us/co-warto-mierzyc-w-sql-server</link>
		<comments>http://poligonit.pl/lang/en-us/co-warto-mierzyc-w-sql-server#comments</comments>
		<pubDate>Wed, 04 Feb 2009 22:50:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[sql server]]></category>
		<category><![CDATA[counters]]></category>
		<category><![CDATA[liczniki]]></category>
		<category><![CDATA[SQL Server 2005]]></category>

		<guid isPermaLink="false">http://poligonit.pl/?p=14</guid>
		<description><![CDATA[Często zdarzają się sytuacje, jak to już z produktami Microsoftu bywa, że baza, za która firma słono zapłaciła nie działa tak szybko, jak można było się tego spodziewać po cenie.  Co można zrobić by to temu zaradzić? Zmienić bazę. Można jednak wcześniej spróbować dopasować konfigurację sprzętowo &#8211; programową, na początek można ustawić liczniki, by nam [...]]]></description>
			<content:encoded><![CDATA[<p>Często zdarzają się sytuacje, jak to już z produktami Microsoftu bywa, że baza, za która firma słono zapłaciła nie działa tak szybko, jak można było się tego spodziewać po cenie.  Co można zrobić by to temu zaradzić? Zmienić bazę.</p>
<p><span id="more-14"></span>Można jednak wcześniej spróbować dopasować konfigurację sprzętowo &#8211; programową, na początek można ustawić liczniki, by nam pomogły określić potrzeby.  W poniższej tabelce znajdują się podstawowe mierniki, wraz z podpowiedzią jak je odczytywać.</p>
<table>
<tr>
<th> Licznik</th>
<th> Opis </th>
</tr>
<tr>
<td>Procesor:% Processor Time</td>
<td>Powinien utrzymywać się poniżej 75% (lepiej jak poniżej 50%).</td>
</tr>
<tr>
<td>System: Processor Queue Length</td>
<td>Powinien utrzymywać się poniżej 2 per procesor. np.w 2-procesorowej maszynie powinien być poniżej 4.</td>
</tr>
<tr>
<td>Pamięć: Pages/sec</td>
<td>Powinien utrzymywać się poniżej 20 (lepiej jak poniżej 15).</td>
</tr>
<tr>
<td>Pamięć: Available Bytes</td>
<td>Powinien pozostawać powyżej 50 MB.</td>
</tr>
<tr>
<td>Dyski: % Disk Time</td>
<td>Powinien pozostawać poniżej 50%.</td>
</tr>
<tr>
<td>Dyski: Avg. Disk Queue Length</td>
<td>Powinien pozostawać poniżej 2 per dysk. np. dla macierzy  5 dysków, wartość mierzona powinna pozostawać ponieżej 10.</td>
</tr>
<tr>
<td>Dyski: Avg. Disk Reads/sec</td>
<td>Określa rozmiar dysku i CPU. Powinien być poniżej 85% pojemości dysku.</td>
</tr>
<tr>
<td>Interfejsy sieciowe: Bytes Total/sec</td>
<td>Określa przepustowość sieci</td>
</tr>
<tr>
<td>SQL Server: Buffer Manager— Buffer Cache Hit Ratio</td>
<td>Powinien przekraczać 90% (idealnie 99%).</td>
</tr>
<tr>
<td>SQL Server: Buffer Manager—Page Life Expectancy</td>
<td>
Określa rozmiar pamięci. Powinien przekraczać 300 sekund.</td>
</tr>
<tr>
<td>SQL Server: General Statistics— User Connections</td>
<td>
Określa rozmiar pamięci.</td>
</tr>
<tr>
<td>SQL Server: Databases— Transactions/sec</td>
<td>
Określa rozmiar pamięci i procesora.</td>
</tr>
<tr>
<td>SQL Server: Databases—Data File(s) Size KB</td>
<td>
Określa rozmiar dysków.</td>
</tr>
<tr>
<td>SQL Server: Databases—Percent Log Used</td>
<td>
Określa rozmiar dysków.</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://poligonit.pl/lang/en-us/co-warto-mierzyc-w-sql-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
