Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Sql Server 2012 по-бавен от 2005?

Първата ми мисъл, когато видя такива варианти, е да се уверя, че имате регенерирани статистики за всичките си таблици. Има много скриптове в мрежата за извършване на това и много дискусии за това дали да се използват вградените sprocs, дали да се направи пълно сканиране и т.н. Ето един бърз и мръсен скрипт, който бих пуснал, преди да правя сравнения.

CREATE  PROCEDURE sp_UtilityUpdateStats AS
SET NOCOUNT ON

DECLARE @iCounter       INT
DECLARE @iCounterMax    INT

DECLARE @TableList TABLE
(
    iTable INT IDENTITY(1,1) PRIMARY KEY,
    szTableName VARCHAR(128)
)

INSERT @TableList (szTableName)
SELECT [name] FROM sysobjects
WHERE [type] = 'u'
ORDER BY [name] DESC


SET @iCounterMax = (SELECT MAX(iTable) FROM @TableList)
SET @iCounter = 0
DECLARE @szTableName VARCHAR(128)

RAISERROR(N'------STARTING sp_UtilityUpdateStats------', 10, 1) WITH LOG
WHILE @iCounter < @iCounterMax
BEGIN
    SET @iCounter = @iCounter + 1

    SELECT  @szTableName = szTableName
    FROM @TableList
    WHERE iTable = @iCounter

    RAISERROR(N'UPDATE STATISTICS YourDB.dbo.%s', 10, 1, @szTableName) WITH LOG
    EXEC ('UPDATE STATISTICS YourDB.dbo.' + @szTableName)

END
RAISERROR(N'------FINISHING sp_UtilityUpdateStats------', 10, 1) WITH LOG

SET NOCOUNT OFF
GO



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server – вмъкване на множество редове с един израз (ANSI стил).

  2. Системни бази данни на SQL Server – Възстановяване на системни бази данни

  3. Край на поддръжката за SQL Server 2008 &2008 R2

  4. BULK INSERT с колона за идентичност (автоматично увеличаване).

  5. Задача на SQL Server Agent - Експортиране на резултати във файл с разделители на табулатори?