Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server 2012 wolniejszy niż 2005?

Moją pierwszą myślą, gdy widzę takie odmiany, jest upewnienie się, że masz zregenerowane statystyki dla wszystkich swoich tabel. W sieci jest wiele skryptów, które to robią i wiele dyskusji na temat tego, czy używać wbudowanych spocs, czy wykonywać pełne skanowanie itp. Oto jeden szybki i brudny skrypt, który uruchomiłbym przed dokonaniem porównań.

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. Crystal Report pokazuje tekst HTML, ale punktory się nie wyświetlają. Czemu?

  2. Dodaj domyślną wartość pola datetime w SQL Server do znacznika czasu

  3. Konwertuj kolumnę na ciąg w SQL Select

  4. Cicha instalacja SQL Server Express 2012 z Inno Setup

  5. Konwertuj „datetime” na „datetime2” w SQL Server (przykłady T-SQL)