前事不忘,后事之师,不忘国耻!

 注册  找回密码
 注册

QQ登录

只需一步,快速开始

帖子
查看: 2423|回复: 0

用SQL测试具有百万条记录的数据库

[复制链接]

用SQL测试具有百万条记录的数据库

[复制链接]
ehxz

主题

0

回帖

7251

积分

管理员

积分
7251
2006-12-18 22:37:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
  如果没有现实的数据集的话,进行基准测试就完全是浪费时间。Arthur Fuller向你展示了你可以怎样设置你的测试,让它能顺利测试那些包含百万行以上数据的数据库,并且返回更准确的测试结果。
  
  TechRepublic免费发行了一种SQLServer时事通讯,该刊每周二刊发,里面有hands on提示,它可以帮助你更熟练的使用这个强大的相关数据库管理系统。
  
  进行基准测试的时候,你很可能会采取下面的步骤:设计一个数据库,它的任何一个表格里面都是连一行数据都没有(因为所有的查询都是闪电式进行的),在该数据库里面填上几行测试数据,然后再测试该数据库。不过,如果你知道你要测试的数据库包含着上百万行的数据,其中的每个表格都被填得满满的,那么,你认为你得到的测试结果的准确率会如何呢?
  
  为了了解当测试的数据库包含上百万行的数据时会出现什么样的情况,你有必要在现有的表格的基础上将它的行数增加到大约一百万(这个表格原来有1,000行)。你还要给所有的行都设一个主键。这些工作的每一项你都是分开做的,就像下面的编码所显示的:
  
  USE northwind
  
  SELECT COUNT(*) FROM [Source Table]
  
  SELECT * INTO TempTable FROM [Source Table]
  
  SELECT COUNT(*) FROM [TempTable]
  
  GO
  
  DECLARE @i Integer
  
  SET @i = 1
  
  WHILE @i < 10 BEGIN INSERT INTO TempTableSELECT * FROM TempTable SET @i = @i + 1 END
  
  SELECT COUNT(*) FROM TempTable
  
  SELECT Identity( int, 1, 1 ) AS PK, * INTO BigTable FROM TempTable
  
  GO
  
  SELECT COUNT(*) FROM BigTable
  
  GO
  
  DROP TempTable
  
  CREATE CLUSTERED INDEX BigTable_Index
  
  ON BigTable (PK)
  
  这个编码产生了一万行数据,也就是说在原来的表格的基础上增加了九倍的行数;接下来它会用SELECT语句来给该表添加一个主键。
  
  现在你可以用一个现成的数据集来开始进行你的基准测试了。如果你的这个现成的数据集需要上千万的行的话,你只需要修改WHILE@I这一命令行,将上限设置成10,000,000就行了。
  
  注意:尽管写出一个产生数据的工具是可能的,这个提示里面却并没有讲这些。不过,它里面也有一些可以用来产生数据的工具。Sybase PowerDesigner就包含了一个很巧妙的工具,它可以让你把带有示例数据的文本文件倒入到相应的表中,并且能依照表之间的各种关联关系生成不同的关系树。
免责申明1、欢迎访问本站,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@dbabbs.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|DBA论坛中国 ( 鲁ICP备20017503号-2 )

GMT+8, 2024-12-30 03:26 , Processed in 0.056544 second(s), 11 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表