Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#CLR比C#应用程序有什么优势吗?_C#_.net_Sql Server_Clr - Fatal编程技术网

使用C#CLR比C#应用程序有什么优势吗?

使用C#CLR比C#应用程序有什么优势吗?,c#,.net,sql-server,clr,C#,.net,Sql Server,Clr,我做了一些实用程序来更新数据库,这些数据库只是从一些网站和web服务收集数据,并不断更新数据库的相关行。为此,我在C#上写了一个应用程序。这是我的错,但我今天第一次听说使用CLR,并用谷歌搜索了一下,做了一些研究。我找到了很多关于比较CLR和T-SQL的文章,但找不到在SQL server上使用CLR和连接到SQL server的普通应用程序之间有什么区别。在这种实用场合使用CLR明智吗 编辑: 为了让问题更清楚,我想比较一下在SQL Server内部使用C与使用C作为主要应用程序查询SQL S

我做了一些实用程序来更新数据库,这些数据库只是从一些网站和web服务收集数据,并不断更新数据库的相关行。为此,我在C#上写了一个应用程序。这是我的错,但我今天第一次听说使用CLR,并用谷歌搜索了一下,做了一些研究。我找到了很多关于比较CLR和T-SQL的文章,但找不到在SQL server上使用CLR和连接到SQL server的普通应用程序之间有什么区别。在这种实用场合使用CLR明智吗

编辑:
为了让问题更清楚,我想比较一下在SQL Server内部使用C与使用C作为主要应用程序查询SQL Server之间的区别。

我所知道的将
C
作为最新版本的
SQL Server
上存储过程的核心语言的唯一好处是

  • 可以编写更复杂的逻辑,正如
    C#
    语言所允许的那样
  • 不需要学习新语言(
    SQL

我所知道的将
C#
作为最新版本的
SQL Server
上存储过程的核心语言使用的唯一好处是

  • 可以编写更复杂的逻辑,正如
    C#
    语言所允许的那样
  • 不需要学习新语言(
    SQL

    • 您描述的应用程序似乎是webcrawler(或类似程序)。这听起来根本不适合SQL CLR。就性能而言,SQL CLR基本上通过删除网络往返和网络传输来帮助您。网络爬虫的性能根本不取决于数据库的网络延迟

      我认为您应该研究SQL Server的一般性能调优技术。正确使用模式和索引。使用高效的查询。在网络上不要太健谈


      我当然不希望我的SQL Server实例向外国web服务器发出HTTP请求。。。这似乎是一个可靠性杀手,也可能是一个安全问题。

      您描述的应用程序似乎是一个webcrawler(或类似程序)。这听起来根本不适合SQL CLR。就性能而言,SQL CLR基本上通过删除网络往返和网络传输来帮助您。网络爬虫的性能根本不取决于数据库的网络延迟

      我认为您应该研究SQL Server的一般性能调优技术。正确使用模式和索引。使用高效的查询。在网络上不要太健谈


      我当然不希望我的SQL Server实例向外国web服务器发出HTTP请求。。。这似乎是一个可靠性杀手,也可能是一个安全问题。

      当SQL Server以某种方式、形状或形式负责启动代码时,我会使用CLR作为经验法则-无论是因为查询中引用了CLR对象,还是SQL代理执行存储过程,等等。当SQL Server以某种方式、形状或形式负责启动代码时,我使用的经验法则是使用CLR——无论是因为查询中引用了CLR对象,还是SQL代理执行了存储过程,等等。但是您能比较CLR和C应用程序吗?在这两种情况下,我都需要使用SQL,我想知道的是,在性能上有什么不同。@Kuzgun:你的问题是不正确的:CLR(公共语言Rntime)是一个平台,在这个平台上,像C#、VB.NET、F#。。。跑如果您的意思是将SQL Server类存储过程中的C#与从普通应用程序运行查询的C#代码的性能进行比较,我认为这不能与良好的相关性进行比较,因为一个在服务器上运行,另一个在客户机上运行,因此,它们的环境完全不同。@Kuzgun:如果你问什么更好使用:C#存储过程,或者从应用程序查询:存储过程通常是更好的方法,因为服务器通常比用户桌面更强大,你可以在服务器上进行计算和聚合,因此,让他们更快,将更少的数据传输到客户端,从而更快地交付结果。感谢您的评论,我编辑了这个问题。我的意思是使用C#创建CLR项目,并将其与查询SQL server的普通C#应用程序进行比较。我必须使用C#从web收集数据,这就是我无法运行正常存储过程的原因。@Kuzgun:在SQL Server中说C#确切地说是什么意思?但您能比较CLR和C#应用程序吗?在这两种情况下,我都需要使用SQL,我想知道的是,在性能上有什么不同。@Kuzgun:你的问题是不正确的:CLR(公共语言Rntime)是一个平台,在这个平台上,像C#、VB.NET、F#。。。跑如果您的意思是将SQL Server类存储过程中的C#与从普通应用程序运行查询的C#代码的性能进行比较,我认为这不能与良好的相关性进行比较,因为一个在服务器上运行,另一个在客户机上运行,因此,它们的环境完全不同。@Kuzgun:如果你问什么更好使用:C#存储过程,或者从应用程序查询:存储过程通常是更好的方法,因为服务器通常比用户桌面更强大,你可以在服务器上进行计算和聚合,因此,让他们更快,将更少的数据传输到客户端,从而更快地交付结果。感谢您的评论,我编辑了这个问题。我的意思是使用C#创建CLR项目,并将其与查询SQL server的普通C#应用程序进行比较。我必须使用C#从web收集数据,这就是我无法运行正常存储过程的原因。@Kuzgun:在SQL Server中说C#确切地说是什么意思?