sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2012 pomalejší než 2005?

Moje první myšlenka, když vidím takové varianty, je zajistit, abyste měli znovu vytvořené statistiky pro všechny vaše tabulky. Na webu je mnoho skriptů, jak to udělat, a spousta diskuzí o tom, zda použít vestavěné sprocs, zda provést fullscan atd. Zde je jeden rychlý a nečistý skript, který bych spustil před prováděním porovnávání.

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. Uložená procedura Mysql při spuštění poskytuje neznámou chybu sloupce

  2. Extrahujte všechny hodnoty z json v tabulce SQL

  3. Nejlepší způsob, jak číst CSV v Ruby. Rychlejší CSV?

  4. Jak zvládnout masivní ukládání záznamů v databázi pro účely autorizace uživatelů?