• SQL SERVER实践应用TED透明数据加密及性能测试(转)


    ---------------------------------------------------------------------

    --创建主密钥

    use master

    Create MASTER KEY ENCRYPTION

    BY PASSWORD = 'zhouwei123!'

    GO

    --创建证书,用于透明数据加密

    CREATE CERTIFICATE TDE_Server_Certificate

    WITH SUBJECT = 'Server-level cert for TDE'

    GO

    --第一步:现在开始透明加密

    USE cte

    GO

    CREATE DATABASE ENCRYPTION KEY--创建数据库加密密钥

    WITH ALGORITHM = TRIPLE_DES_3KEY--加密方式

    ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate--使用服务器级证书加密

    GO

    --第二步打开加密开关

    ALTER DATABASE cte

    SET ENCRYPTION ON

    GO

    --查看数据库是否加密

    SELECT name ,is_encrypted

    FROM sys.databases

    --第三步在cte及nocet中创建相同表

    use cte

    create table GoodsInfoCte

    (

        Autoid  int identity(1,1) primary key,

        GoodsId int,

        GoodsName varchar(50),

        CusID   int,

        CusName varchar(50)

    );

    go

    use nocte

    create table GoodsInfoNocte

    (

        Autoid  int identity(1,1) primary key,

        GoodsId int,

        GoodsName varchar(50),

        CusID   int,

        CusName varchar(50)

    );

    Go

    --第四步:清空缓存

    DBCC FLUSHPROCINDB(5)

    DBCC FLUSHPROCINDB(9)

    ---------------------------------------------------------------------

    插入100000记录对比

    --insert nocte..GoodsInfoNocte  100000

    declare @b int

    set @b=1

    while(@b<100000)

    begin

    insert into nocte..GoodsInfoNocte(GoodsId,GoodsName,CusID,CusName)

    select 123,'pc-dell',123456,'张三×××××××××××'

    set @b=@b+1

    end

    insert into nocte..GoodsInfoNocte(GoodsId,GoodsName,CusID,CusName)

    select GoodsId,GoodsName,CusID,CusName from logshink..GoodsInfo

    --insert nocte..GoodsInfoNocte  100000

    declare @b int

    set @b=1

    while(@b<100000)

    begin

    insert into nocte..GoodsInfoNocte(GoodsId,GoodsName,CusID,CusName)

    select 123,'pc-dell',123456,'张三×××××××××××'

    set @b=@b+1

    end

    insert into nocte..GoodsInfoNocte(GoodsId,GoodsName,CusID,CusName)

    select GoodsId,GoodsName,CusID,CusName from logshink..GoodsInfo

    执行时间对比(1-6 是循环语句执行时间,7-10从logshink..GoodsInfo插入):

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    37

    38

    36

    37

    36

    37

    CPU 时间 = 1903 毫秒,占用时间 = 3042 毫秒

    CPU 时间 = 2028 毫秒,占用时间 = 2921 毫秒

    CPU 时间 = 1981 毫秒,占用时间 = 2999 毫秒

    CPU 时间 = 1965 毫秒,占用时间 = 3244 毫秒

    29

    28

    29

    30

    29

    30

    CPU 时间 = 515 毫秒,占用时间 = 1223 毫秒

    CPU 时间 = 562 毫秒,占用时间 = 1175 毫秒

    CPU 时间 = 483 毫秒,占用时间 = 1105 毫秒

    CPU 时间 = 515 毫秒,占用时间 = 1275 毫秒

    I0对比:

    表'GoodsInfoCte'。扫描计数0,逻辑读取322516 次,物理读取0 次,预读658 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    表'GoodsInfo'。扫描计数1,逻辑读取748 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

     

    表'GoodsInfoNocte'。扫描计数0,逻辑读取322516 次,物理读取0 次,预读658 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    表'GoodsInfo'。扫描计数1,逻辑读取748 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    占用空间对比:

    ---------------------------------------------------------------------

    查询前300000对比

    select top 300000 * from nocte..GoodsInfoNocte

    select top 300000 * from cte..GoodsInfoCte

    实际执行计划对比(左:GoodsInfoNocte,右:GoodsInfoCte)

    执行时间对比(上:GoodsInfoNocte,下:GoodsInfoCte):

    1

    2

    3

    4

    5

    6

    CPU 时间= 109 毫秒,占用时间= 3338 毫秒。

    CPU 时间= 62 毫秒,占用时间= 3285 毫秒。

    CPU 时间= 109 毫秒,占用时间= 3263 毫秒。

    CPU 时间= 125 毫秒,占用时间= 3271 毫秒。

    CPU 时间= 234 毫秒,占用时间= 3353 毫秒。

    CPU 时间= 265 毫秒,占用时间= 3353 毫秒。

    CPU 时间= 234 毫秒,占用时间= 3283 毫秒。

    CPU 时间= 250 毫秒,占用时间= 3310 毫秒。

    CPU 时间= 187 毫秒,占用时间= 3291 毫秒。。

    CPU 时间= 78 毫秒,占用时间= 3291 毫秒。

    CPU 时间= 125 毫秒,占用时间= 3282 毫秒。

    CPU 时间= 156 毫秒,占用时间= 3323 毫秒。

    IO 对比:

    表'GoodsInfoNocte'。扫描计数1,逻辑读取2255 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    表'GoodsInfoCte'。扫描计数1,逻辑读取2254 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    ---------------------------------------------------------------------

    更改300000记录对比

    update nocte..GoodsInfoNocte set GoodsName='pc-hp' where Autoid<300000

    update cte..GoodsInfoCte set GoodsName='pc-hp' where Autoid<300000

    实际执行计划对比(左:GoodsInfoNocte,右:GoodsInfoCte)

    Io对比

    表'GoodsInfoNocte'。扫描计数1,逻辑读取2250 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    表'GoodsInfoCte'。扫描计数1,逻辑读取2250 次,物理读取0 次,预读0 次,lob 逻辑读取0 次,lob 物理读取0 次,lob 预读0 次。

    执行时间对比:

    DBCC FLUSHPROCINDB(5)

    DBCC FLUSHPROCINDB(9)

     

    update nocte..GoodsInfoNocte set GoodsName='pc-hp1-aa' where Autoid<300000  

    CPU 时间 = 2434 毫秒,占用时间 = 3438 毫秒

    update nocte..GoodsInfoNocte set GoodsName='pc-hp2-bb' where Autoid<300000

    CPU 时间 = 609 毫秒,占用时间 = 1213 毫秒

    update nocte..GoodsInfoNocte set GoodsName='pc-hp3-cc' where Autoid<300000

    CPU 时间 = 671 毫秒,占用时间 = 715 毫秒

    update nocte..GoodsInfoNocte set GoodsName='pc-hp4-dd' where Autoid<300000

    CPU 时间 = 593 毫秒,占用时间 = 677 毫秒

    update nocte..GoodsInfoNocte set GoodsName='pc-hp5-ee' where Autoid<300000

    CPU 时间 = 639 毫秒,占用时间 = 688 毫秒

     

    update cte..GoodsInfoCte set GoodsName='pc-hp1-aa' where Autoid<300000  

     CPU 时间 = 5335 毫秒,占用时间 = 7251 毫秒

    update cte..GoodsInfoCte set GoodsName='pc-hp2-bb' where Autoid<300000

    CPU 时间 = 3791 毫秒,占用时间 = 6196 毫秒

    update cte..GoodsInfoCte set GoodsName='pc-hp3-cc' where Autoid<300000

    CPU 时间 = 3916 毫秒,占用时间 = 6197 毫秒

    update cte..GoodsInfoCte set GoodsName='pc-hp4-dd' where Autoid<300000

    CPU 时间 = 3401 毫秒,占用时间 = 5141 毫秒

    update cte..GoodsInfoCte set GoodsName='pc-hp5-ee' where Autoid<300000

    CPU 时间 = 3931 毫秒,占用时间 = 5933 毫秒

    删除 前300000条记录

    DBCC FLUSHPROCINDB(5)

    DBCC FLUSHPROCINDB(9)

    delete from nocte..GoodsInfoNocte where Autoid<300000

    CPU 时间 = 624 毫秒,占用时间 = 2477 毫秒。

    delete from cte..GoodsInfoCte where Autoid<300000

    CPU 时间 = 3011 毫秒,占用时间 = 7073 毫秒

  • 相关阅读:
    JDBC的简单笔记
    javascript学习笔记二
    javascript学习一、js的初步了解
    css的简单学习笔记
    c++ 拷贝构造函数
    C++ new delete
    c++ 析构函数
    c++成员初始化和构造函数
    C++ 类和对象浅解
    c++ constexpr
  • 原文地址:https://www.cnblogs.com/qanholas/p/2794402.html
Copyright © 2020-2023  润新知