Management Studio: Miért lassú a táblamódosítás?

Az SQL Server Management Studio felületén keresztül módosítani akartam az adattárház egyik táblájának oszlopát nvarchar(12)- ről nvarchar(15)-re, és a következő hibaüzenetet kaptam:

Unable to modify table.
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.

Ugyanez a módosítás TSQL-ből (Alter Table) pillanatok alatt lefutott. Elindítottam hát a profiler-t, hogy megnézzem, mit csinál a Management Studio felülete. Nos:

  1. Létrehoz egy Temp táblát a módosításoknak megfelelően (esetünkben nvarchar(15)-tel)
  2. Ezután mindent beszúr az eredeti táblából a Temp-be
  3. Eldobja az eredeti táblát
  4. Átnevezi a Temp táblát az eredeti tábla nevére.

Konklúzió: Az adattárház nagy tábláinak módosítását bízzuk a jó öreg Alter Table TSQL utasításra.

Kővári Attila - BI projekt

Új hozzászólás