1
我想知道与通过SQL Server 2008运行托管代码相关的性能问题。我听说过一些内存和速度问题。在SQL Server 2008中运行托管代码 - 任何问题?
具体来说,我想实现一个SHA256散列DLL并执行它与SQL Server的一个存储过程2008
或者,我可以简单地从我的.net应用程序中执行的哈希,则该字符串传递给我的存储过程。
优点/缺点?
谢谢。
我想知道与通过SQL Server 2008运行托管代码相关的性能问题。我听说过一些内存和速度问题。在SQL Server 2008中运行托管代码 - 任何问题?
具体来说,我想实现一个SHA256散列DLL并执行它与SQL Server的一个存储过程2008
或者,我可以简单地从我的.net应用程序中执行的哈希,则该字符串传递给我的存储过程。
优点/缺点?
谢谢。
SQLCLR相当快。如果您明确需要在T-SQL中执行CLR代码,请使用它。例如,假设您使用以下签名编写SQLCLR功能:
SqlString Hash(SqlString input)
并且您设法让它按照它应该的方式运行。你可以执行以下查询:
IF EXISTS(SELECT * FROM Users WHERE HashedPassword = dbo.Hash(@userPassword) AND UserName = @userName)
BEGIN
SELECT 'You''re alright, Jack.';
END
ELSE
BEGIN
SELECT 'Bogus.';
END
如果你能设法散列在您的应用程序的假设密码字段,你最好这样做的应用程序中,并通过散列值到SQL Server运行查询像这样:
SELECT *
FROM User
WHERE UserName = @userName AND HashedPassword = @hashedPassword
这是有几个原因更好:
新的空间特征是使用CLR实现的。因此,至少表明MS在CLR方面有足够的信心实施一项重要的新功能,这项功能也需要表现良好。 – AaronLS 2010-07-29 19:01:35
是否内置的加密方法都不适用? – 2010-07-29 19:04:57
Will, 我需要实现SHA256或更高级别的加密,据我所知,SQL Server 2008的缩小版本无法使用。 – ElHaix 2010-07-29 19:20:20