最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > SQLServer 2000 升级到 SQLServer 2008 性能建站知识

SQLServer 2000 升级到 SQLServer 2008 性能建站知识

时间:2023-05-21 20:05:21 阅读: 文章分类: 网站建设 作者: 网络小编

导读:1建站知识今天在 相同环境测试 2000 和 2008 性能 让我意外的是 2008 明显比2000 慢很多,因为不能简单的升级,sql语句也需要优化网站seo优化软件网站建设公司。

网站seo优化软件网站建设公司测试sql:

复制代码 代码如下:

SET STATISTICS IO ON SET STATISTICS TIME ON SELECT COUNT(1) FROM dbo.tbtext a INNER LOOP JOIN dbo.tbtext b ON a.id = b.id option (maxdop 1) SET STATISTICS IO Off SET STATISTICS TIME Off

表结构:

复制代码 代码如下:

CREATE TABLE [dbo].[tbtext]( [id] [int] IDENTITY(1,1) NOT NULL, [VALUE] [int] NULL ) ON [PRIMARY]

单这句测试,看执行计划根本看不出区别。 |--Compute Scalar(DEFINE:([Expr1006]=CONVERT_IMPLICIT(int,[Expr1009],0))) |--Stream Aggregate(DEFINE:([Expr1009]=Count(*))) |--Nested Loops(Inner Join, WHERE:([northwind].[dbo].[tbtext].[id] as [b].[id]=[northwind].[dbo].[tbtext].[id] as [a].[id])) |--Table Scan(OBJECT:([northwind].[dbo].[tbtext] AS [a])) |--Table Spool |--Table Scan(OBJECT:([网站建设多少钱northwind].[dbo].[tbtext] AS [b])) 2008r2:

复制代码 代码如下:

/* 警告: 由于使用了本地联接提示,联接次序得以强制实施。 表 'tbtext'。扫描计数 1,逻辑读取 46 次 (1 行受影响) 表 'Worktable'。扫描计数 1,逻辑读取 290098 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 表 'tbtext'。扫描计数 2,逻辑读取 262 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 (1 行受影响) SQL Server 执行时间: CPU 时间 = 32828 毫秒,占用时间 = 32846 毫秒。 SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。 */

2000sp4:

复制代码 代码如下:

/* 警告: 由于使用了局部联接提示,所以联接次序得以强制实施。 表 'tbtext'。扫描计数 1,逻辑读 131 次,物理读 0 次,预读 0 次。 SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 表 'Worktable'。扫描计数 9999,逻辑读 180001 次,物理读 0 次,预读 0 次。 表 'tbtext'。扫描计数 2,逻辑读 262 次,物理读 0 次,预读 138 次。 SQL Server 执行时间: CPU 时间 = 17188 毫秒,耗费时间 = 17261 毫秒。 (1 行受影响) SQL Server 执行时间: CPU 时间 = 0 毫秒,耗费时间 = 0 毫秒。 */

比较2000 和 2008的执行就能发现 2008 的cpu 时间明显比 2000 高,2008 的worktable 逻辑读取量,比2000的高, 这个有个worktable 的扫描技术,2000的是9999,2008的是1,这个让人难免有的疑惑是什么情况,都是nest loop,worktable 扫描不应该是1才对。 性能差怎么大会不会是 worktable 搞的鬼呢? 那么就开始调节,过滤id 会有啥发现呢?

复制代码 代码如下:

SET STATISTICS IO ON SET STATISTICS TIME ON SELECT COUNT(1) FROM dbo.tbtext a INNER LOOP JOIN dbo.tbtext b ON a.id = b.id WHERE a.id <= 1000 option (maxdop 1) SELECT COUNT(1) FROM dbo.tbtext a SET STATISTICS IO Off SET STATISTICS TIME Off

关键词标签: SQL 性能 升级到

声明: 本文由我的SEOUC技术文章主页发布于:2023-05-21 ,文章SQLServer 2000 升级到 SQLServer 2008 性能建站知识主要讲述升级到,性能,SQL网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_3863.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章