在 SQL Server 2008 中运行托管代码 - 有问题吗?
我想知道与通过 SQL Server 2008 运行托管代码相关的性能问题。我听说过一些内存和速度问题。
具体来说,我想实现一个 SHA256 哈希 DLL,并使用 SQL Server 2008 将其作为存储过程执行。
或者,我可以简单地从我的 .Net 应用程序执行哈希,然后将字符串传递到我的存储过程。
优点/缺点?
谢谢。
I would like to know the performance issues associated with running managed code through SQL Server 2008. I've heard about some memory and speed issues.
Specifically, I want to implement a SHA256 hashing DLL and execute it as a sproc with SQL Server 2008.
Alternately, I could simply execute the hashing from my .Net app, then pass the string to my sprocs.
Pros/cons?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
SQLCLR 相当快。如果您明确需要在 T-SQL 中执行 CLR 代码,请使用它。例如,假设您编写了一个具有签名的 SQLCLR 函数:
并且您设法使其全部按应有的方式运行。您可以执行以下查询:
如果您可以设法对应用程序中的假设密码字段进行哈希处理,则最好在应用程序内执行此操作,并将哈希值传递到 SQL Server 中以运行如下查询:
这对于有几个原因:
SQLCLR is quite fast. Use it if you have a clear need to execute CLR code within T-SQL. For example, say you write a SQLCLR function with the signature:
and you manage to get it all running the way it should. You could execute the following query:
If you can manage to hash the hypothetical password field in your app, you are better off to do so within the app and pass the hashed value into SQL Server to run a query like this:
This is better for a few reasons: