博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL SERVER实践应用--TED透明数据加密及性能测试(转)
阅读量:5160 次
发布时间:2019-06-13

本文共 5009 字,大约阅读时间需要 16 分钟。

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

--创建主密钥

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 毫秒

转载于:https://www.cnblogs.com/qanholas/archive/2012/11/29/2794402.html

你可能感兴趣的文章
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty&#39;s Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
查看>>
Kettle学习系列之Kettle能做什么?(三)
查看>>