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