MSSQL Server Express Edition的性能

我们公司有几个SQL Server环境,其中一些使用标准版或企业版的MS-SQL Server 2005 Express Edition。

在今天的讨论中,DBA表示MSSQL Express Ed。 标准版的性能会降低。

那么我知道有以下限制:服务器只使用1GB的内存服务器只使用1个CPU

但是我不知道还有其他的限制。 你有什么经验还有其他可能的性能问题?

对以前的答案进行了一次更正 – SQL Server Express仅支持单个CPU插槽 – 但是如果插槽有多个内核,Express将使用它们,您将获得并行性。 鲜为人知的事实…

在标准查询中没有任何“人造”的限制 – 即“select * from tableFoo”不会运行得慢一点,而在这种情况下,> 1个CPU内核将会受益。

在某些情况下,还有一些缺失的function可以提高性能,如索引视图,全文索引等。

像大多数问题一样,它确实取决于具体的应用程序。 如果您的应用程序受益于Express Edition中缺less的任何function(请参阅Microsoft的比较网格: http : //www.microsoft.com/sqlserver/2005/en/us/compare-features.aspx ),那么性能将会受损。 如果没有,如果没有。

我相信你的下一步(如果需要的话,办公室的政治和/或人际关系许可)是打印出来的图表,并要求你的数据库pipe理员详细说明哪些具体缺失的function将出现问题。

除了仅支持1个CPU和1个内存的事实之外,SQL Server Express不会比其他版本运行速度慢。

SQL Server 2000 MSDE仅支持5个正在运行的并发语句,而其他任何内容都必须等待,直到出现空闲插槽,但在SQL 2005 Express版本中删除了该语句。

SQL Express的一个问题是在空闲时间大约15分钟后它将被caching并释放它的caching。 当用户再次点击时,这会造成滞后。 根据您的使用模式,这可能是一个问题。 你可以在这里阅读有关的细节: http : //blogs.msdn.com/sqlexpress/archive/2008/02/22/sql-express-behaviors-idle-time-resources-usage-auto-close-and-user- instances.aspx

除已经确定的CPU和RAM使用外,主要限制是任何给定数据库数据文件的总数不能超过4Gb的大小。 由于事务日志文件不计入4Gb,因此数据库的总数可能会大于此值。

在MSDE2000(Express Edition的SQL 200等效版本)中,大小限制为2Gb。

  1. 重新索引
  2. 截短
  3. 收缩

为驯化

USE {DB NAME} DECLARE @TableName varchar(255) DECLARE TableCursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_type = 'base table' OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN if @tablename='DUAL' or @tablename='IMPORT_CONTROL_TRN' begin print 'skipping ' +@tablename FETCH NEXT FROM TableCursor INTO @TableName continue end else begin if @TableName='calltrak' begin print 'reindexing calltrak' DBCC DBREINDEX(@TableName,' ',50) end else begin print 're-indexing ' + @TableName DBCC DBREINDEX(@TableName,' ',70) end end FETCH NEXT FROM TableCursor INTO @TableName END CLOSE TableCursor DEALLOCATE TableCursor exec sp_updatestats