2013-10-22 31 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

相关问题