sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2012 langsommere end 2005?

Min første tanke, når jeg ser sådanne variationer, er at sikre, at du har genskabt statistik for alle dine tabeller. Der er mange scripts på nettet til at gøre dette og masser af diskussion om, hvorvidt man skal bruge de indbyggede sprocs, om man skal lave fullscan osv. Her er et hurtigt og beskidt script, som jeg ville køre igennem, før jeg sammenligner.

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. Hvordan sammenkædes strenge af et strengfelt i en PostgreSQL 'gruppe efter' forespørgsel?

  2. Valg af tilfældige ord fra tabellen

  3. SQL VISNING

  4. Test af Oracle to_date-funktionen