<?xml version="1.0" encoding="windows-1254"?>
<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>Arda Çetinkaya &#187; SQL Server</title>
	<atom:link href="http://www.minepla.net/tag/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.minepla.net</link>
	<description>Yazılım ve geri kalan her şey ile ilgili arada saçmaladıklarım...</description>
	<lastBuildDate>Fri, 09 Dec 2011 08:42:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Nedirtv.com Kasım ayı webinerleri&#8230;</title>
		<link>http://www.minepla.net/2011/11/nedirtv-com-kasym-ayy-webinerleri/</link>
		<comments>http://www.minepla.net/2011/11/nedirtv-com-kasym-ayy-webinerleri/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 08:10:21 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[Etkinlik]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=1697</guid>
		<description><![CDATA[Nedirtv.com&#8216;un düzenlediği webinerler kaldığı yerden devam ediyor. Kasım ayında yeni 3 konu ile uzun süredir ara verilen webinerler tekrardan başlıyor. Oldukça güncel ve yeni konulara değinilecek bu webinerlere katılmanızı tavsiye ederim&#8230; Konu: NoSQL Nedir? &#8211; MongoDB ile .NET Kardesligi Tarih: 14 Kasim Pazartesi 21:00 Konuşmacı: İbrahim ATAY Link: https://www.livemeeting.com/cc/mvp/join?id=N7732S&#38;role=attend Konu: SQL Server &#8211; Stored Procedure [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.neditrv.com" target="_blank">Nedirtv.com</a></strong>&#8216;un düzenlediği webinerler kaldığı yerden devam ediyor. Kasım ayında yeni 3 konu ile uzun süredir ara verilen webinerler tekrardan başlıyor. Oldukça güncel ve yeni konulara değinilecek bu webinerlere katılmanızı tavsiye ederim&#8230;</p>
<p><strong>Konu:</strong> NoSQL Nedir? &#8211; MongoDB ile .NET Kardesligi<br />
<strong>Tarih:</strong> 14 Kasim Pazartesi 21:00<br />
<strong>Konuşmacı:</strong> İbrahim ATAY<br />
<strong>Link:</strong> <strong><a href="https://www.livemeeting.com/cc/mvp/join?id=N7732S&amp;role=attend" target="_blank">https://www.livemeeting.com/cc/mvp/join?id=N7732S&amp;role=attend</a></strong><br />
<strong><br />
</strong><br />
<strong>Konu:</strong> SQL Server &#8211; Stored Procedure ve Function<br />
<strong>Tarih:</strong> 21 Kasim Pazartesi 21:00<br />
<strong>Konuşmacı:</strong> Gorkem SEZGİN<br />
<strong>Link:</strong> <strong><a href="https://www.livemeeting.com/cc/mvp/join?id=Q24KBF&amp;role=attend" target="_blank">https://www.livemeeting.com/cc/mvp/join?id=Q24KBF&amp;role=attend</a></strong><br />
<strong><br />
</strong><br />
<strong>Konu:</strong> HTML 5<br />
<strong>Tarih:</strong> 28 Kasım Pazartesi 21:00<br />
<strong>Konuşmacı:</strong> Cemil UZUN<br />
<strong>Link:</strong> <strong><a href="https://www.livemeeting.com/cc/mvp/join?id=H7GTWK&amp;role=attend" target="_blank">https://www.livemeeting.com/cc/mvp/join?id=H7GTWK&amp;role=attend</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2011/11/nedirtv-com-kasym-ayy-webinerleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paging and sorting pattern in SQL Server</title>
		<link>http://www.minepla.net/2010/11/paging-and-sorting-pattern-in-sql-server/</link>
		<comments>http://www.minepla.net/2010/11/paging-and-sorting-pattern-in-sql-server/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 17:59:03 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=1461</guid>
		<description><![CDATA[If you are developing some applications with .NET Framework, you should familiar with some built-in sorting and paging methods of some user controls(for example, grids&#8230;)  in both web and Windows enviroments for your data which are stored in SQL Server. But to be honest, I do not like these methods so much. In some cases, [...]]]></description>
			<content:encoded><![CDATA[<p>If you are developing some applications with .NET Framework, you should familiar with some built-in sorting and paging methods of some user controls(for example, grids&#8230;)  in both web and Windows enviroments for your data which are stored in SQL Server. But to be honest, I do not like these methods so much. In some cases, they really rock and save life, but in some cases you really have to think about a better way for sorting ang paging.</p>
<p>Nowadays, I am in a case that I have to write some custom sorting and paging methods for my applications. The reason is because of some performance needs and also to have more control on these methods. So I gave these sorting and paging duty to SQL Server and create a simple pattern as stored procedure.</p>
<p>With this pattern, I am able to sort my data according to any column and also apply the paging according to this sort with preferred page size. And as you know that this is not so easy with some built-in control methods&#8230;</p>
<p>So here you can use this pattern. And if you have a better approach or idea, please let me know&#8230;</p>
<pre class="brush: sql; title: ; notranslate">
ALTER PROCEDURE SEARCH_SOMETHING
(
	@param1 nvarchar(50),
	@param2 int,
	...
	..
	.
	@skipedIndex int,
	@pagesize int,
	@sortColumn nvarchar(50),
	@direction nvarchar(1)
)
AS
SELECT  * FROM
(
Select
Table1.Column1,
Table1.Column2,
Table1.Column3,
row_number() OVER (
		ORDER BY
		CASE
			WHEN @sortColumn='' AND @direction='' THEN  Table1.Column1

		END DESC,
		CASE -----D for desc
			WHEN @sortColumn='Column1' AND @direction='D' THEN  Table1.Column1

		END DESC,
		CASE ----A for asc
			WHEN @sortColumn='Column1' AND @direction='A' THEN  Table1.Column1

		END ASC,
		CASE
			WHEN @sortColumn='Column2' AND @direction='D' THEN  Table1.Column2

		END DESC,
		CASE
			WHEN @sortColumn='Column2' AND @direction='A' THEN  Table1.Column2

		END ASC
) AS rownumber
 from Table1
WHERE ---THESE ARE THE CONDITIONS FOR YOUR SQL QUERY
(@param1='' or Table1.Column1 = @param1) AND
(@param2=-1 or Table1.Column2 = @param2) AND
......
..
..

) as t ---THIS IS THE PAGING CONDITIONS
WHERE (
		(@skipedIndex=-1 and @pagesize=-1 ) OR
	    (t.rownumber between @skipedIndex+1 and @skipedIndex + @pageSize)
	   )
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2010/11/paging-and-sorting-pattern-in-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TFS 2008&#8242;i SQL Server 2008 ile çalıştırmak istersek&#8230;</title>
		<link>http://www.minepla.net/2010/01/tfs-2008i-sql-server-2008-ile-calythtyrmak-istersek/</link>
		<comments>http://www.minepla.net/2010/01/tfs-2008i-sql-server-2008-ile-calythtyrmak-istersek/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 13:12:09 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Team Foundation Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=888</guid>
		<description><![CDATA[TFS 2008&#8242;i SQL Server 2008 yüklü bir makinaya kurmak istediğimizde aşağıdaki gibi bir hata sinirinizi bozacaktır. A compatible version of SQL Server is not installed. TFS 2008&#8242;i SQL Server 2008 ile kullanmak istediğimizde TFS 2008&#8242;in Service Pack 1&#8242;li halini kurmak gerekecektir. TFS 2008 SP1 ile ancak SQL Server 2008&#8242;i kullanabilir hale geliyoruz kısaca&#8230;Peki bunu nasıl [...]]]></description>
			<content:encoded><![CDATA[<p>TFS 2008&#8242;i SQL Server 2008 yüklü bir makinaya kurmak istediğimizde aşağıdaki gibi bir hata sinirinizi bozacaktır.</p>
<blockquote><p><strong>A compatible version of SQL Server is not installed.</strong></p></blockquote>
<p>TFS 2008&#8242;i SQL Server 2008 ile kullanmak istediğimizde TFS 2008&#8242;in Service Pack 1&#8242;li halini kurmak gerekecektir. TFS 2008 SP1 ile ancak SQL Server 2008&#8242;i kullanabilir hale geliyoruz kısaca&#8230;Peki bunu nasıl yapacağız?</p>
<p>TFS 2008&#8242;in Service Pack 1&#8242;li bir halini oluşturmak gerekecek.Bunun için öncelikle TFS 2008&#8242;i DVD&#8217;sinin içeriğini bir bilgisayarımızda bir yere kopyalamak gerekiyor. D:\TFS_2008\ gibi&#8230;</p>
<p>Daha sonra<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9E40A5B6-DA41-43A2-A06D-3CEE196BFE3D&amp;displaylang=en" target="_blank"> bu adresten</a> TFS 2008 SP1 indirmeniz gerekiyor.İndirdikten sonra TFS 2008 SP1&#8242;i extract etmeniz gerekiyor. Bunun için C:\<strong>TFS90SP1-KB949786-ENU /extract:d:\TFS_2008_SP1\ </strong>komutunu çalıştırmanız yeterli olacaktır.</p>
<p>Bu aşamadan sonra elimizde hem TFS 2008, hemde TFS 2008 SP1 olacaktır. Şimdi bu ikisini birleştirmek kaldı.Bunun içinde;</p>
<blockquote><p><strong>msiexec /a D:\TFS_2008\vs_setup.msi /p d:\TFS_2008_SP1\TFS90sp1-KB949786.msp TARGETDIR=d:\TFS_2008_wSP1</strong></p></blockquote>
<p>komutunu çalıştırmak yeterli olacaktır. Daha sonra D:\TFS_2008_wSP1 klasöründen kurulumu yapabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2010/01/tfs-2008i-sql-server-2008-ile-calythtyrmak-istersek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008&#8242;de &#8220;Saving Changes Not Permitted&#8221; hatası</title>
		<link>http://www.minepla.net/2009/08/sql-server-2008de-saving-changes-not-permitted-hatasy/</link>
		<comments>http://www.minepla.net/2009/08/sql-server-2008de-saving-changes-not-permitted-hatasy/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 08:53:24 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=462</guid>
		<description><![CDATA[SQL Server 2008 Management Studio ile bir tabloda değişiklik yaptığınız zaman, ayarlarınızdan dolayı aşağıdaki hatayı alıyor olacaksınız. Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can&#8217;t be re-created or enabled the option Prevent saving changes [...]]]></description>
			<content:encoded><![CDATA[<p>SQL Server 2008 Management Studio ile bir tabloda değişiklik yaptığınız zaman, ayarlarınızdan dolayı aşağıdaki hatayı alıyor olacaksınız.</p>
<blockquote><p>Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can&#8217;t be re-created or enabled the option Prevent saving changes that require the table to be re-created.</p></blockquote>
<p>Bunun nedeni; tablolarda designer tarafında yapılan değişiklikler için, SQL Server drop ve re-create işlemlerini uygular.Management Studio&#8217;daki bazı ayarlardan dolayı da bu işlem gerçekleşemiyor olabiliyor ve yukarıdaki hatayı alıyoruz.</p>
<p>Bunun için yapmamız gereken SQL Server Managemet Studio&#8217;dan yukarıdaki menü aracılığıyla(Tools &gt; Options) Options&#8217;ı açıyoruz. Çıkacak ekrandan soldaki kısımdan Designer&#8217;ı seçtiğimizde karşımıza çıkacak ekrandaki <strong>&#8220;Prevent saving changes that require table re-creation&#8221; </strong>daki işareti kaldırıyoruz.</p>
<p>Bu işlemden sonra tablolar üstünde istediğimiz değişiklikleri yapabiliyor olacağız&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/08/sql-server-2008de-saving-changes-not-permitted-hatasy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server&#8217;da LSN hatası</title>
		<link>http://www.minepla.net/2009/08/sql_serverda_lsn_hatasy/</link>
		<comments>http://www.minepla.net/2009/08/sql_serverda_lsn_hatasy/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 08:17:54 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=459</guid>
		<description><![CDATA[&#8220;Error 9003: The LSN(42:132:1) passed to log scan in database &#8216;&#60;DBName&#62;&#8217; is invalid&#8221; SQL Server&#8217;da bir database attach etmeye çalıştığınız zaman yukarıdaki gibi bir hata alıyorsanız,yapmanız gerekenler çok basit. Bu hatayı attach etmeye çalıştığımız database&#8217;in .mdf ve .ldf dosyalarının uyuşmamasından dolayı alıyoruz. LSN(Log sequence number) uyuşmazlığından dolayı alınan bu hatayı aşmak için sadece .mdf dosyasının [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;Error 9003: The LSN(42:132:1) passed to log scan in database &#8216;&lt;DBName&gt;&#8217; is invalid&#8221;</p></blockquote>
<p>SQL Server&#8217;da bir database attach etmeye çalıştığınız zaman yukarıdaki gibi bir hata alıyorsanız,yapmanız gerekenler çok basit. Bu hatayı attach etmeye çalıştığımız database&#8217;in .mdf ve .ldf dosyalarının uyuşmamasından dolayı alıyoruz. LSN(Log sequence number) uyuşmazlığından dolayı alınan bu hatayı aşmak için sadece .mdf dosyasının attach etmek yeterli olacaktır. SQL Server .ldf dosyasını kendi oluşturacaktır.</p>
<p>Peki bu LSN ne?</p>
<p>SQL Server&#8217;da her transaction log, bu LSN numarası ile tutulur. Database üzerindeki değişiklikler bu numaralara göre takip edilir ve log&#8217;lanır&#8230;Database&#8217;deki her hangi bir sorunda bu loglardan sağlıklı bir duruma gelinebilir. İşte bu LSN numaralarının uyuşmazlığı server&#8217;a bir DB attach ettiğimiz yada backup&#8217;dan restore yaptığımız yukarıdaki hatayı karşımıza çıkaracaktır.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/08/sql_serverda_lsn_hatasy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server&#8217;da:&#8221;Failed to retrieve data for this request.&#8221; hatası&#8230;</title>
		<link>http://www.minepla.net/2009/08/sql-serverda-failed-to-retrieve-data-for-this-request-hatasi/</link>
		<comments>http://www.minepla.net/2009/08/sql-serverda-failed-to-retrieve-data-for-this-request-hatasi/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 08:00:47 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=445</guid>
		<description><![CDATA[SQL Server 2008&#8242;de, bir database dosyasını eklemek(attach) istediğinizde aşağıdaki gibi hatalar alıyorsanız çözümü çok kolay; Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc) ADDITIONAL INFORMATION: An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo) &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to [...]]]></description>
			<content:encoded><![CDATA[<p>SQL Server 2008&#8242;de, bir database dosyasını eklemek(attach) istediğinizde aşağıdaki gibi hatalar alıyorsanız çözümü çok kolay;</p>
<blockquote><p>Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">ADDITIONAL INFORMATION:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file  (Microsoft SQL Server, Error: 5123)</div>
<p>ADDITIONAL INFORMATION:An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file  (Microsoft SQL Server, Error: 5123)</p></blockquote>
<p>Öncelikle bu hatayı neden alıyor, bunu anlamak lazım. Bu işlemi yaparken ki database kullanıcısının dosya sistemi üzerinde yetkisi olmadığından dolayı bu hatayı alıyoruz. &#8220;sa&#8221; bile olsa bağlandığımız kullanıcı bu hatayı alıyor olacağız. Bu işlemi SSMS(SQL Server Management Studio)&#8217;ya Windows Auth. ile bağlanıp, aynı attach işlemini yaptığımızda sorunsuz bir şekilde bu işlemi yapabiliyoruz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/08/sql-serverda-failed-to-retrieve-data-for-this-request-hatasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Büyük dosyaları, database&#8217;e atmak&#8230;</title>
		<link>http://www.minepla.net/2009/07/buyuk_dosyalari_database_e_atmak/</link>
		<comments>http://www.minepla.net/2009/07/buyuk_dosyalari_database_e_atmak/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 06:44:31 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=427</guid>
		<description><![CDATA[Bir dosyadaki verileri(~100MB) database&#8217;e atmak gibi basit bir operasyon yapmam gerekiyordu. Dosya &#8220;tab delimited&#8221; bir dosya ve yaklaşım 45 civarı da kolon var ve kolonlarda dolu. En basit ve ilk akla gelen yöntem satır satır bu kayıtları database&#8217;e atmak olacaktır. Ancak bu kadar çok veriyi atarken oluşabilecek &#8220;time-out&#8221;lardan dolayı, hangi kayıdın atıldığı ya da atılmadığını [...]]]></description>
			<content:encoded><![CDATA[<p>Bir dosyadaki verileri(~100MB) database&#8217;e atmak gibi basit bir operasyon yapmam gerekiyordu. Dosya &#8220;tab delimited&#8221; bir dosya ve yaklaşım 45 civarı da kolon var ve kolonlarda dolu. En basit ve ilk akla gelen yöntem satır satır bu kayıtları database&#8217;e atmak olacaktır. Ancak bu kadar çok veriyi atarken oluşabilecek &#8220;time-out&#8221;lardan dolayı, hangi kayıdın atıldığı ya da atılmadığını yönetmek sonra daha zor olacaktır.Ki bu kadar büyük bir dosyayıda satır satır okumak IO olarakta, dikkat edilmediğinde gereksiz bir maliyet. Satır satır database&#8217;e kayıt etmekte database server&#8217;ı gereksiz yere yoracaktır zaten.</p>
<p><span id="more-427"></span></p>
<p>Bu operasyon bir kereliğine yapılmayacak ve başka zamanlarda da çalışabilecek bir yapı gerektirdiğinden Windows servis şeklinde tasarladık. Import edilen kayıtlardaki bir &#8220;flag&#8221;e göre, ya silme,<span style="text-decoration: line-through;">ya güncelleme</span>,ya da ekleme işlemi yapılacak.</p>
<p>Tüm bunları göz önüne aldığımızda, dosyadan parça parça okuyup, okunan bu verileri &#8220;batch insert&#8221; şeklinde database&#8217;e atmak en mantıklı yöntem. Kaçar kaçar atılacağını bir kaç deneme ile en optimumu bularak ayarlayabilirsiniz. Ancak burada da bir sorun var. Veri sayısı çok fazla olduğundan bu işlem uzun sürecektir. Hem bundan dolayı,hemde bağlantı sorunlarından dolayı database&#8217;den bu işlemler sırasında hatalar almak mümkün. &#8220;Import&#8221; edilen verinin bir bütünlük sağlıyor olması ve ya hepsinin aktarılıyor ya da hiç birinin aktarılmıyor olması gerekliliğinden dolayı da bu hataları yönetebilmek oldukça zor. Bundan dolayı &#8220;import&#8221; işlemini 2 aşamalı olarak tasarladık. İlk aşamada parça parça okunan dosyadaki veriler temp bir tabloya aktarılmakta. Daha sonra bütün işi database server&#8217;ın üstüne yıkarak, bu &#8220;temp&#8221; tablodaki verileri dosyadaki flag bilgilerine göre orjinal tabloya aktarıyoruz.(Flag,A ise yeni kayıt,M ise update,D ise sil gibi) Zaman performansı olarak bu şekilde doruk noktasına ulaşabiliyoruz <img src='http://www.minepla.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>~100MB&#8217;lık veri yapısı bu uygulamada yaklaşık olarak 500.000 satıra denk gelmekteydi.(45 kolon ve kolonlar dolu) Bu bağlamda 500.000 kayıdın bir &#8220;transaction&#8221;da başka bir tabloya atılması ne kadar doğru bilemeyeceğim ama doğru index yapıları ile bu iş çok kolay olmakta.Burada doğru index yapılarının altını çizmek isterim flaglere ya da başka şeylere göre sorgulama gereği duyduğumuzda mutlaka o kolonlara index koymamız gerekmekte.</p>
<p>Büyük boyutlu dosyaları database&#8217;e atmak konusunda fikirleriniz,yöntemleriniz var ise paylaşırsanız çok sevinirim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/07/buyuk_dosyalari_database_e_atmak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL&#8217;de Trigger&#8217;ı yok saymak</title>
		<link>http://www.minepla.net/2009/06/sql_trigger_yok_saymak/</link>
		<comments>http://www.minepla.net/2009/06/sql_trigger_yok_saymak/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 13:33:51 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=383</guid>
		<description><![CDATA[Bazen üzerinde TRIGGER çalışan tablolarda Trigger&#8217;ı es geçerek sorgu çalıştırmanız gerekebilir.Bunun için çalıştıracağınız sorgunun öncesinde trigger&#8217;ı disable etmeniz gerekmekte.Sorgumuzu çalıştırdıktan sonra tekrardan enable etmeyi unutmuyoruz tabi ki. ALTER TABLE Tablo1 DISABLE TRIGGER ALL UPDATE Tablo1 SET [ update edilecek değerler ] ALTER TABLE Tablo1 ENABLE TRIGGER ALL ALL şeklinde kullanırsak tablo üstündeki tüm trigger&#8217;ları disable [...]]]></description>
			<content:encoded><![CDATA[<p>Bazen üzerinde TRIGGER çalışan tablolarda Trigger&#8217;ı es geçerek sorgu çalıştırmanız gerekebilir.Bunun için çalıştıracağınız sorgunun öncesinde trigger&#8217;ı disable etmeniz gerekmekte.Sorgumuzu çalıştırdıktan sonra tekrardan enable etmeyi unutmuyoruz tabi ki.</p>
<blockquote><p>ALTER TABLE Tablo1 DISABLE TRIGGER ALL</p>
<p>UPDATE Tablo1 SET [ update edilecek değerler ]</p>
<p>ALTER TABLE Tablo1 ENABLE TRIGGER ALL</p></blockquote>
<p>ALL şeklinde kullanırsak tablo üstündeki tüm trigger&#8217;ları disable etmiş oluruz. ALL yerine trigger ismi yazıp sadece o trigger üstünde enable/disable işlemini gerçekleştirebiliriz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/06/sql_trigger_yok_saymak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server&#8217;da Attach DB</title>
		<link>http://www.minepla.net/2009/04/sql-serverda-attach-db/</link>
		<comments>http://www.minepla.net/2009/04/sql-serverda-attach-db/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 13:55:19 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=342</guid>
		<description><![CDATA[CREATE DATABASE [DB_ADI] ON ( FILENAME = N&#8217;MDF_DOSYASI&#8216; ), ( FILENAME = N&#8217;LDF_DOSYASI&#8216; ) FOR ATTACH GO Yukarıdaki kod ile SQL Server&#8217;da attach işlemini yapabiliriz. Bu kod SQL Server 2005 ve SQL Server 2008 de geçerli,SQL Server 2000&#8242;de &#8220;sp_attach_db&#8221;(stored procedure) çalıştırmak gerekli.]]></description>
			<content:encoded><![CDATA[<blockquote>
<p class="MsoNormal"><span lang="TR">CREATE</span><span lang="TR"> <span>DATABASE</span> [</span><span lang="TR"><strong>DB_ADI</strong></span><span lang="TR">] <span>ON</span> </span></p>
<p class="MsoNormal"><span lang="TR">(</span><span lang="TR"> <span>FILENAME</span> <span>=</span> <span>N&#8217;</span><strong>MDF_DOSYASI</strong><span>&#8216;</span> <span>),</span></span></p>
<p class="MsoNormal"><span lang="TR">(</span><span lang="TR"> <span>FILENAME</span> <span>=</span> <span>N&#8217;</span><strong>LDF_DOSYASI</strong><span>&#8216;</span> <span>)</span></span></p>
<p class="MsoNormal"><span lang="TR"> <span>FOR</span> <span>ATTACH</span></span></p>
<p class="MsoNormal"><span lang="TR">GO</span></p>
</blockquote>
<p class="MsoNormal"><span lang="TR">Yukarıdaki kod ile SQL Server&#8217;da attach işlemini yapabiliriz. Bu kod SQL Server 2005 ve SQL Server 2008 de geçerli,SQL Server 2000&#8242;de &#8220;sp_attach_db&#8221;(stored procedure) çalıştırmak gerekli. </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/04/sql-serverda-attach-db/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Team Foundation Server ve Reporting Service sorunu</title>
		<link>http://www.minepla.net/2009/04/team-foundation-server-ve-reporting-service-sorunu/</link>
		<comments>http://www.minepla.net/2009/04/team-foundation-server-ve-reporting-service-sorunu/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 08:23:11 +0000</pubDate>
		<dc:creator>Arda</dc:creator>
				<category><![CDATA[Miyop]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.minepla.net/?p=327</guid>
		<description><![CDATA[Team Foundation Server&#8217;ı sorunsuz yükledikten sonra, bu başarının vermiş olduğu sevinç projelerin raporlarını görüntülemek istediğimizde biraz sekteye uğrayabilir. TFS kurulumundan sonra Reporting Service&#8217;e müdahale etmeden çalışan bir raporlama sistemi ile ne yazık ki henüz karşılaşmadım ve duymadım. (: Visual Studio&#8217;da Team Explorer aracılığıyla yaratmış olduğumuz projenin portal&#8217;ını açtığımızda raporları görüntülerken, ya da direk Reporting Server&#8217;ın [...]]]></description>
			<content:encoded><![CDATA[<p>Team Foundation Server&#8217;ı sorunsuz yükledikten sonra, bu başarının vermiş olduğu sevinç projelerin raporlarını görüntülemek istediğimizde biraz sekteye uğrayabilir. TFS kurulumundan sonra Reporting Service&#8217;e müdahale etmeden çalışan bir raporlama sistemi ile ne yazık ki henüz karşılaşmadım ve duymadım. (:</p>
<p>Visual Studio&#8217;da Team Explorer aracılığıyla yaratmış olduğumuz projenin portal&#8217;ını açtığımızda raporları görüntülerken, ya da direk Reporting Server&#8217;ın raporlarının bulunduğu web sitesini açtığımızda aşağıdaki gibi bir hata alıyorsak yapmamız gereken bir kaç şey var.</p>
<blockquote><p><strong>An error has occurred during report processing. (rsProcessingAborted)<br />
Query execution failed for dataset &#8216;WorkItemTypeParam&#8217;. (rsErrorExecutingCommand)</strong></p></blockquote>
<p>Öncelikle bunun nedenini bilmemiz lazım. SQL Server loglarına bakarsak, bir login sorunun log dosyalarına yazıldığını görürüz.Bu durum TFS&#8217;in TfsWareHouse database&#8217;ine ilgili raporları çekecek kullanıcının(bu kullanıcı kurulum esnasında belirttiğiniz ya da Reporting Service&#8217;i çalıştıran kullanıcı,ben genellikle local NETWORK SERVICE&#8217;ni kullanıyorum) ilgili yetkisi olmamasından dolayı. Bu yetkiyi vermek için aşağıdaki SQL sorgusunu çalıştırmamız gerekmekte.</p>
<blockquote><p><strong>USE [TfsWarehouse]</strong></p>
<p><strong>GO</strong></p>
<p><strong>CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE]</strong></p>
<p><strong>GO</strong></p>
<p><strong>USE [TfsWarehouse]</strong></p>
<p><strong>GO</strong></p>
<p><strong>EXEC sp_addrolemember N&#8217;TfsWarehouseDataReader&#8217;, N&#8217;NT AUTHORITY\NETWORK SERVICE&#8217;</strong></p>
<p><strong>GO</strong></p></blockquote>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong><span style="font-weight: normal;">Bu sorgudan sonra raporların tekrardan process edilebiliyor olması gerekmekte.Bunun için bir kontrol yapmamız lazım.TFS bu aşamada Analysis Server&#8217;ı kullanıyor.Daha doğrusu Reporting Service&#8217;de bulunan OLAP data kaynağı Analysis Server&#8217;ı kullanıyor.OLAP data kaynağıda ilgili dataları Reporting Service&#8217;e ilgili dataları sağlayamadığından yukarıdaki hatayı alıyoruz. Yetki olayını yaptıktan sonra SQL Management Studio&#8217;dan bu sefer&#8217;de Analysis Server&#8217;a bağlanmamız gerekmekte.Databases kısmından TfsWarehouse&#8217;a sağ tıklayıp Process dememiz gerekmekte.(Çıkan ekranda OK derseniz Process işlemi başlayacaktır.)</span></strong></p>
<p><strong><span style="font-weight: normal;"><img class="alignleft size-full wp-image-328" title="analysisserver" src="http://www.minepla.net/wp-content/uploads/analysisserver.jpg" alt="analysisserver" width="311" height="141" /></span></p>
<p><span style="font-weight: normal;">Bu işlemin sorunsuz çalışması lazım.Bir sorun çıkarsa önceki SQL srogusunun sorunsuz ve düzgün kullanıcı ile çalıştırıldığından emin olun.</span></p>
<p><span style="font-weight: normal;">Şimdi tekrardan raporları görüntülemeye çalışın.Sorunsuz bir şekilde raporların geldiğini göreceksiniz.Benzer bir hatanın devam ettiğini görürseniz endişelenmeyin. Hata devam ediyorsa OLAP data kaynaklarının Reporting Service tarafından alınmadığındandır.</span></p>
<p><span style="font-weight: normal;"><br />
</span></p>
<p><span style="font-weight: normal;"><img class="alignright size-full wp-image-329" title="webservice" src="http://www.minepla.net/wp-content/uploads/webservice.jpg" alt="webservice" width="188" height="311" />Bu aşamada son bir şey yapmamız gerekmekte. TFS&#8217;in yüklü olduğu makinada http://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx adresine gitmemiz gerekmekte.Çıkan methodlardan GetWareHouseStatus&#8217;e tıklayıp Invoke dememiz gerekiyor.Bu method Idle,ProcessingOlap,RunningAdapters ve Blocked şeklinde değerler dönmekte. Idle olana kadar beklememiz gerekmekte.Invoke&#8217;u çağırarak bunu kontrol edebiliriz.Durum Idle olduğunda,yine http://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx adresinde bu sefer Run methodunu çağırmamız ve dönen değerin true oluyor olması lazım.</span></p>
<p><span style="font-weight: normal;"><br />
</span></p>
<p><span style="font-weight: normal;">Bütün bu işlemlerden sonra raporlarımızın sorunsuz bir şekilde görüntüleniyor olması gerekmekte.</span></p>
<p></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.minepla.net/2009/04/team-foundation-server-ve-reporting-service-sorunu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

