Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Operacje minimalnie
logowane
95. Spotkanie PLSSUG Warszawa, 07.04.2016.
Dziś w programie
Na czym polega minimalne logowanie?
Kiedy możemy z niego skorzystać?
Ile można na tym stracić?
A ile ...
Bartosz Ratajczyk
Konsultant SQL Server
Programista aplikacji i baz danych
MCSE: Data Platform, MCT, MCTS SQL Server 2008
...
Log transakcyjny
Przechowuje informacje o każdej wykonanej
modyfikacji danych
Ilość zapisywanych informacji może zależeć...
Logowanie minimalne (1)
„At a minimum, enough information has to be logged when minimally
logged operation is performed to...
Logowanie minimalne (2)
Zawiera tylko informacje o alokacji stron danych
Przez co oszczędzamy na I/O zapisu do logu
ALE:...
Rodzaje logowania
Pełne – każda operacja ma swój rekord w logu
Efektywne – w logu znajduje się rekord dla
zmienionej str...
DEMO
Pierwsze z dwóch, ale za to duże i długie
Co jest/może być minimalnie logowane?
BULK INSERT
bcp
SELECT INTO
INSERT INTO .. SELECT
CREATE INDEX
ALTER INDEX REB...
Wymagania, wymagania
non-FULL recovery model
AND NOT replicated
AND (
(Heap AND TABLOCK)
OR (B-tree AND empty AND TABLOCK)...
Jeszcze jeden myk
Jeśli nie ma możliwości użycia TABLOCK można użyć wytrychu
EXEC sys.sp_tableoption
@TableNamePattern = ...
Zalety
Szybszy zapis danych do logu
Mniejsze I/O
Wady
Wrażliwe na błędy w plikach danych
Wymaga trybu odzyskiwania danych SIMPLE lub
przełączania między FULL i BULK LOGG...
TRUNCATE
Błyskawiczne kasowanie danych
Jest logowane, czy nie jest?
Dlaczego działa tak szybko?
DEMO
Drugie i ostatnie, za to krótkie
Do zapamiętania
Logowanie minimalne to zapisywanie do logu
transakcyjnego tylko informacji o alokacji stron danych
Przys...
Do poczytania
Itzik Ben-Gan „Minimally logged inserts: http://sqlmag.com/t-
sql/minimally-logged-inserts
Gail Shaw, Tony...
Upcoming SlideShare
Loading in …5
×

Operacje minimalnie logowane

214 views

Published on

Operacje minimalnie logowane w SQL Server

Published in: Education
  • Be the first to comment

  • Be the first to like this

Operacje minimalnie logowane

  1. 1. Operacje minimalnie logowane 95. Spotkanie PLSSUG Warszawa, 07.04.2016.
  2. 2. Dziś w programie Na czym polega minimalne logowanie? Kiedy możemy z niego skorzystać? Ile można na tym stracić? A ile zyskać? Co to jest logowanie efektywne? Logowanie w TRUNCATE TABLE?
  3. 3. Bartosz Ratajczyk Konsultant SQL Server Programista aplikacji i baz danych MCSE: Data Platform, MCT, MCTS SQL Server 2008 http://bartekr.net | b.ratajczyk@gmail.com
  4. 4. Log transakcyjny Przechowuje informacje o każdej wykonanej modyfikacji danych Ilość zapisywanych informacji może zależeć od modelu odzyskiwania danych (recovery model)
  5. 5. Logowanie minimalne (1) „At a minimum, enough information has to be logged when minimally logged operation is performed to allow SQL Server to rollback a transaction that has failed.” Kalen Delaney, SQL Server Internals 2012 „Minimal logging involves logging only the information that is required to recover the transaction without supporting point-in-time recovery.” BOL: https://msdn.microsoft.com/en-us/library/ms191244.aspx
  6. 6. Logowanie minimalne (2) Zawiera tylko informacje o alokacji stron danych Przez co oszczędzamy na I/O zapisu do logu ALE: Nie wszystkie informacje niezbędne do odtworzenia danych znajdują się w logu transakcyjnym Dopiero backup logu transakcyjnego zawiera zmienione strony danych
  7. 7. Rodzaje logowania Pełne – każda operacja ma swój rekord w logu Efektywne – w logu znajduje się rekord dla zmienionej strony danych Minimalne – logowany jest tylko fakt alokacji danych na stronę
  8. 8. DEMO Pierwsze z dwóch, ale za to duże i długie
  9. 9. Co jest/może być minimalnie logowane? BULK INSERT bcp SELECT INTO INSERT INTO .. SELECT CREATE INDEX ALTER INDEX REBUILD, DBCC DBREINDEX REORGANIZE niestety nie .WRITE WRITETEXT, UPDATETEXT DEPRECATED
  10. 10. Wymagania, wymagania non-FULL recovery model AND NOT replicated AND ( (Heap AND TABLOCK) OR (B-tree AND empty AND TABLOCK) OR (B-tree AND empty AND TF-610) OR (B-tree AND nonempty AND TF-610 AND NEW key- range) ) Źródło: Itzik Ben-Gan, http://sqlmag.com/t-sql/minimally-logged-inserts
  11. 11. Jeszcze jeden myk Jeśli nie ma możliwości użycia TABLOCK można użyć wytrychu EXEC sys.sp_tableoption @TableNamePattern = N’dbo.Tabela’, @OptionName = ’table lock on bulk load’, @OptionValue = ’ON’
  12. 12. Zalety Szybszy zapis danych do logu Mniejsze I/O
  13. 13. Wady Wrażliwe na błędy w plikach danych Wymaga trybu odzyskiwania danych SIMPLE lub przełączania między FULL i BULK LOGGED Czyli odpadają mirroring i Availability Groups Ale zadziała przy Log Shipping Może wymagać TF 610 – sysadmin Wszystkie strony danych muszą być zapisane na dysku przed zakończeniem transakcji
  14. 14. TRUNCATE Błyskawiczne kasowanie danych Jest logowane, czy nie jest? Dlaczego działa tak szybko?
  15. 15. DEMO Drugie i ostatnie, za to krótkie
  16. 16. Do zapamiętania Logowanie minimalne to zapisywanie do logu transakcyjnego tylko informacji o alokacji stron danych Przyspiesza część operacji, ale jest wrażliwe na błędy plików danych TRUNCATE jest operacją w pełni logowaną, po prostu jest logowana efektywnie
  17. 17. Do poczytania Itzik Ben-Gan „Minimally logged inserts: http://sqlmag.com/t- sql/minimally-logged-inserts Gail Shaw, Tony Davis „Managing the Log in BULK_LOGGED Recovery Model” http://www.sqlservercentral.com/articles/Stairway+Series/94552/ Paul Randall „The Myth that DROP and TRUNCATE TABLE are Non- Logged” http://sqlperformance.com/2013/05/sql-performance/drop- truncate-log-myth Remus Rusanu „How to read and interpret the SQL Server log” http://rusanu.com/2014/03/10/how-to-read-and-interpret-the-sql- server-log/

×