2013-10-22 36 views
1

我做一些公用設施工程,更新數據庫,這是簡單地從一些網站和網絡服務收集數據,並更新相關的數據庫的行汽車無。我在C#上編寫了一個應用程序來執行此操作。這是我的不好,但是我聽說今天第一次使用CLR並將其用於一些研究。我發現很多關於將CLR與T-SQL進行比較的文章,但找不到有關在SQL Server上使用CLR與連接到SQL Server的正常應用程序之間的區別。在這樣的實用場合使用CLR是明智的嗎?使用C#CLR與C#應用程序相比有什麼優勢嗎?

編輯: 爲了使問題更清楚,我不知道如何使用C#SQL Server中,並使用C#作爲主要的應用程序,查詢SQL服務器之間的比較。

+1

拇指我會使用的規則是當SQL Server是要採取某種方式,形狀或形式的責任使用CLR,爲拉開碼 - 不管是因爲CLR對象是在查詢中引用,或SQL代理執行存儲過程等。 –

回答

1

您介紹這似乎是一個WebCrawler的(或類似)的應用程序。這聽起來根本不像是適合SQL CLR的。在性能方面,SQL CLR基本上通過去除網絡往返和網絡傳輸來幫助您。網絡爬蟲的性能完全不依賴於數據庫的網絡延遲。

我想你應該探討SQL Server的一般性能優化技術。讓你的模式和索引正確。使用高效的查詢。不要在網絡上過於喋喋不休。

我當然不希望我的SQL Server實例發出HTTP請求到外國網絡服務器...這似乎是一個殺手級的可靠性和可能的​​安全問題。

0

知道我使用C#像上SQL Server最新版本的存儲過程中的核心語言的唯一好處,是

  • 可以編寫更復雜的邏輯,作爲C#語言允許那些
  • 不需要學習一種新的語言(SQL
+0

但是,您可以比較CLR和C#應用程序嗎?在這兩種情況下,我需要使用SQL,我想知道的是,性能是否有差異。 – Kuzgun

+1

@Kuzgun:你的問題是不正確的:CLR(Common Language Rntime)是一種平臺,它可以像C#,VB.NET,F#等編程語言一樣運行。如果您的意思是比較存儲過程的SQL Server中的C#*與運行來自普通應用程序的查詢的C#代碼的比較性能,我不認爲它可以與相關性的良好百分比進行比較,因爲在服務器上運行的是另一個在客戶端運行,所以它們的*環境*完全不同。 – Tigran

+0

@Kuzgun:如果你問什麼更好用:C#存儲過程或從應用程序查詢:存儲過程通常是更好的方法,因爲服務器通常具有更多的權力,然後用戶桌面,你可以計算和聚合*上服務器*,所以讓他們更快,並*傳輸更少的數據*通過線路連接到客戶端,所以*交付*結果更快。 – Tigran

相關問題