我正在进行一些性能测试,发现SQL似乎在一个全新的数据库上执行速度比在一段时间内执行速度慢得多,我想知道为什么会这样,我怎么能在创建之后,我的数据库更好一些,以便我的性能测试更准确。
为表明我的观点,我有一个测试应用here,它可以执行以下操作:
2需要大约1.5倍,长度为4
答案 0 :(得分:1)
这可能是由于数据库不在RAM中。仅仅因为创建数据库并不意味着它被加载到RAM中。 SQL Server可能只在数据库正在使用时执行此操作,如果在一段时间内未使用,甚至可能会释放它们。与缓存类似。
创建数据库后,尝试从表中选择count(*),以确保所有内容都在ram中。然后我希望2和4在大约相同的时间范围内表现。
啊,刚刚看到关于汽车增长的评论。这可以解释很多,截断表将使该空间可用,以便服务器不必分配新页面。 - 好评如lnu。编辑尝试在测试前将数据和日志文件设置为500 MB,以确保文件增长不是问题。类似的东西。
CREATE DATABASE [TestDB] ON PRIMARY
( NAME = N'TestDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\TestDB.mdf' , SIZE = 512000KB , FILEGROWTH = 10%)
LOG ON
( NAME = N'TestDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\TestDB_log.ldf' , SIZE = 512000KB , FILEGROWTH = 10%)
GO
答案 1 :(得分:0)
我尝试了Inu关于自动增长的说明,看起来这就是问题发生的原因。