如果没有现实的数据集的话进行基准测试就完全是浪费时间Arthur Fuller向你展示了你可以怎样设置你的测试让它能顺利测试那些包含百万行以上数据的数据库并且返回更准确的测试结果
TechRepublic免费发行了一种SQLServer时事通讯该刊每周二刊发里面有hands on提示它可以帮助你更熟练的使用这个强大的相关数据库管理系统
进行基准测试的时候你很可能会采取下面的步骤设计一个数据库它的任何一个表格里面都是连一行数据都没有(因为所有的查询都是闪电式进行的)在该数据库里面填上几行测试数据然后再测试该数据库不过如果你知道你要测试的数据库包含着上百万行的数据其中的每个表格都被填得满满的那么你认为你得到的测试结果的准确率会如何呢?
为了了解当测试的数据库包含上百万行的数据时会出现什么样的情况你有必要在现有的表格的基础上将它的行数增加到大约一百万(这个表格原来有行)你还要给所有的行都设一个主键这些工作的每一项你都是分开做的就像下面的编码所显示的
USE northwind
SELECT COUNT(*) FROM [Source Table]
SELECT * INTO TempTable FROM [Source Table]
SELECT COUNT(*) FROM [TempTable]
GO
DECLARE @i Integer
SET @i =
WHILE @i < BEGIN INSERT INTO TempTableSELECT * FROM TempTable SET @i = @i + END
SELECT COUNT(*) FROM TempTable
SELECT Identity( int ) 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这一命令行将上限设置成就行了
注意尽管写出一个产生数据的工具是可能的这个提示里面却并没有讲这些不过它里面也有一些可以用来产生数据的工具Sybase PowerDesigner就包含了一个很巧妙的工具它可以让你把带有示例数据的文本文件倒入到相应的表中并且能依照表之间的各种关联关系生成不同的关系树