加密数据库时是否存在性能差异?

时间:2012-11-02 09:37:36

标签: sql sql-server-2008

我只是想知道打开数据库加密时存储过程和内联查询是否存在任何性能差异?

如果是的话,你能解释什么时候表现好,什么时候不好?

2 个答案:

答案 0 :(得分:2)

根据我对DB200的DBA经验,对最终用户的性能影响非常小,原因是:

加密仅在写入和读取数据库文件(.DBF)和备份时发生。一旦数据在内存中,它就会被解密,并且查询的运行速度和正常情况一样快。

整个加密过程过去在SQL 2005中都是隐蔽的,并且存在显着的性能损失,但在SQL 2008中,加密表或整个数据库的过程只需几分钟(并且方向很容易遵循 - { {3}})。

该过程基本上需要三个步骤:

  1. 创建公钥/私钥证书密钥(有一个存储过程)。
  2. 打开db的加密。
  3. 然后保存db。
  4. 当数据库文件以加密形式重写时,被加密的数据库将切换到单用户模式一两分钟,但这不会花费很长时间。例如,50GB文件的转换最多需要几分钟。

    祝你好运并确保不丢失证书密钥!通过电子邮件发送给自己,因为如果您需要从备份中恢复或将MDF文件移动到另一台服务器,那么您就会在没有证书文件的情况下搞砸了。 (别担心,这些都列在我列出的MS文档中。)

答案 1 :(得分:0)

@AnandPhadke - Mitch的意思是成为开销。需要进行加密和解密,因此无论何时进行这些操作都会产生开销。

  

在SQL Server的企业版和开发人员版中   2008年,透明数据加密(TDE)的新安全功能有了   被包括在内。它对整体性能的影响略有不利   关于SQL Server优化。它的程度为3%至5%。   但是,如果大多数数据存储在内存中,则会产生影响   较小的一个。

来源:SQL Server Optimization And The Performance Impact Of Encryption

  

“如果有任何其他数据库,tempdb系统数据库将被加密   使用TDE加密SQL Server实例。这可能有   对同一个实例上的未加密数据库的性能影响   SQL Server。有关tempdb系统数据库的更多信息,请参阅   tempdb数据库。“

来源:Transparent Data Encryption (TDE)