sql >> Database >  >> RDS >> Sqlserver

Sql Server 2012 langzamer dan 2005?

Mijn eerste gedachte als ik dergelijke variaties zie, is om ervoor te zorgen dat je statistieken voor al je tabellen opnieuw hebt gegenereerd. Er zijn veel scripts op internet om dit te doen en er is veel discussie over het gebruik van de ingebouwde sprocs, of je fullscan moet doen, enz. Hier is een snel en vies script dat ik zou uitvoeren voordat ik vergelijkingen ga maken.

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. MySQL-groep per weeknummer met kolom met meerdere datums

  2. Schakel Hibernate auto-update bij flush op alleen-lezen synoniemen uit

  3. Alle resultaten verkrijgen met de where-clausule

  4. SSIS LookUp werkt niet met NULL's zoals de documenten zeggen dat het zou moeten