测量 SQL Server 数据库和 SQL Express 用户实例(.mdf 类型的数据库文件)之间的性能命中

Posted

技术标签:

【中文标题】测量 SQL Server 数据库和 SQL Express 用户实例(.mdf 类型的数据库文件)之间的性能命中【英文标题】:Measuring performance hits between SQL Server database and SQL Express User Instances (.mdf type database files) 【发布时间】:2009-09-07 14:00:41 【问题描述】:

有人测量过“真实”SQL Server 数据库和 SQL Server Express 用户实例(附加的 .mdf 数据库文件)之间的性能差异吗?

结论是什么?

.mdf 数据库文件对您的应用程序来说是否足够快?

【问题讨论】:

你能解释一下你认为有什么不同吗? marc_s 是正确的。 我确定,“托管”在 MS SQL Server 上的数据库和 Microsoft 数据库文件之间存在差异。对于术语,我无法更好地解释。 【参考方案1】:

.MDF 类型 IS SQL Server............

好的,所以您想了解将 .MDF 文件作为用户实例附加在 SQL Server Express 中的行为。我自己从未真正使用过该功能,但据我所知,唯一的区别是 SQL Server Express 必须先附加 .MDF 文件,然后才能在会话期间首次使用它。

因此,当第一个请求进入时,您会遇到一定的延迟 - 这很难量化,主要取决于您的硬件(磁盘速度、可用 RAM)。绝对不应该超过几秒钟。

一旦附加,据我所知,SQL Server Express 用户实例数据库和“正确的”现实生活中的 SQL Server Express 数据库之间没有区别。所以我认为这不是性能方面的主要问题。

【讨论】:

...但不要让它阻止你。 是的,但是“真正的”SQL Server 和 Sql Server 用户实例(.mdf 文件)之间存在差异。我对性能差异感兴趣。 附加操作还需要启动一个“子实例”,这才是真正的麻烦。 “父” Express 实例需要将一组 master/model/msdb 文件复制到用户配置文件中,然后在用户上下文下启动 SQL 服务器进程,等待它启动(创建 tempdb 等),然后与其通信.一旦启动,子实例在最后一次访问后最多持续一小时。 msdn.microsoft.com/en-us/library/bb264564%28SQL.90%29.aspx。子实例运行并连接后,它的行为与其他任何具有明确限制的实例一样。 @Remus:好的,所以启动延迟可能比我最初想象的要严重。但您同意 - 一旦附加完成,性能应该与独立的、成熟的 SQL Server (Express) 数据库相同,对吧?

以上是关于测量 SQL Server 数据库和 SQL Express 用户实例(.mdf 类型的数据库文件)之间的性能命中的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server等待事件—PAGEIOLATCH_EX

在SQL Server中测量字符串长度和字节长度

SQL Server 存储过程性能测试

在 CTE 中创建块 - SQL Server

SQL Server里的 ISNULL 与 NULLIF

Performance analysis of SQL server disk I / O