Skrypt dzięki uprzejmości Michała Powagi 😉 — raport z czasami procesowania paczek ETLowych USE SSISDB; GO SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; DECLARE @execution_id BIGINT = 70660; — tutaj wstawić execution ID paczki WITH msgs AS ( SELECT event_message_id , execution_path , package_name , package_path_full , event_name , message_source_name ,Czytaj dalej / Read more
Kategoria: Przydatne skrypty
Dział z mniejszymi/większymi skryptami przydatnymi w codziennej pracy z SQL Server
RESTORE DATABASE FROM database_snapshot
Z dokumentacji technet: https://msdn.microsoft.com/en-us/library/ms175158%28v=sql.105%29.aspx Snapshots can be used for reporting purposes. Also, in the event of a user error on a source database, you can revert the source database to the state it was in when the snapshot was created. Data loss is confined to updates to the database sinceCzytaj dalej / Read more
TRACEFLAG 8780 – turn off optimizer time out
Poniższe włącza mechanizm, którego celem jest wydłużenie czasu poszukiwania lepszego planu (teoretycznie ma wyłączać timeout na 3 fazie, ale zauwazyłem, że z tym to różnie bywa. Niemniej jednak znajduje czasem zdecydowanie lepsze rozwiązania) option (querytraceon 8780) option (querytraceon 2301)
Aktualizacja statystyk dla tabel używanych w widoku (wraz z zagnieżdżonymi)
DECLARE @ObjectName sysname = 'VIEW_NAME’; DECLARE @ObjectSchema sysname = 'dbo’; DECLARE @WithFullscan BIT = 1; DECLARE @ExecuteUpdateStatistics BIT = 1; —————CODE SET NOCOUNT ON; IF NOT EXISTS ( SELECT * FROM sys.objects WHERE name = @ObjectName AND schema_id = SCHEMA_ID(@ObjectSchema) AND type = 'V’ ) THROW 50000, 'Obiekt nie istniejeCzytaj dalej / Read more
Znalezienie queryid dla Query Store
SELECT Txt.query_text_id , Txt.query_sql_text , Pl.plan_id , Qry.* FROM sys.query_store_plan AS Pl JOIN sys.query_store_query AS Qry ON Pl.query_id = Qry.query_id JOIN sys.query_store_query_text AS Txt ON Qry.query_text_id = Txt.query_text_id WHERE Txt.query_sql_text LIKE '%SEARCH%’;
Statystyki do aktualizacji
SELECT [sch].[name] + ’.’ + [so].[name] AS [TableName] , [ss].[name] AS [Statistic] , [sp].[last_updated] AS [StatsLastUpdated] , [sp].[rows] AS [RowsInTable] , [sp].[rows_sampled] AS [RowsSampled] , [sp].[modification_counter] AS [RowModifications] FROM [sys].[stats] [ss] JOIN [sys].[objects] [so] ON [ss].[object_id] = [so].[object_id] JOIN [sys].[schemas] [sch] ON [so].[schema_id] = [sch].[schema_id] OUTER APPLY [sys].[dm_db_stats_properties]( [so].[object_id] ,Czytaj dalej / Read more
Znalezienie kandydatów na COLUMNSTORE INDEX
Post ze skryptem pierwotnie opublikowany przez Sunil Agarwal na TEJ STRONIE. — picking the tables that qualify CCI — Key logic is — (a) Table does not have CCI — (b) At least one partition has > 1 million rows and does not have — unsupported types for CCI —Czytaj dalej / Read more
Sprytne (i szybkie) wygenerowanie tabeli z liczbami od 1 do N (tally table)
Jeżeli potrzebowaliście kiedyś wygenerować na szybko do testów sporą ilość wierszy lub chcieliście otrzymać liczby rosnąco w postaci wierszy (joinowanie numeracji, sprawdzanie ciaglosci numeracji i inne kombinacje ;]) to istnieje sposób na stosunkowo szybkie zaspokojenie takiej potrzeby 😀 Z pomocą przychodzi nam CTE i funkcja okienkowa numerująca dane wygenerowane przezCzytaj dalej / Read more
sys.dm_db_index_usage_stats
Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/ms188755%28v=sql.105%29.aspx ) „Every individual seek, scan, lookup, or update on the specified index by one query execution is counted as a use of that index and increments the corresponding counter in this view. Information is reported both for operations caused by user-submitted queries, and for operations causedCzytaj dalej / Read more
Skrypt generujący polecenia backup dla całego serwera SQL
Wrzucam skrypcik popełniony już jakiś czas temu. Potrzeba wykonania szybko backupu, wraz z jego zrównolegleniem do kilku plików i unikalną nazwą zaowocowały poniższym kodem. ZAŁOŻENIA: generowanie dla ścieżek sieciowych (lub lokalnych dyskowych) poprzez parametr, wygenerować polecenia backup wszystkich baz na serwerze tak by można było je przekopiować i uruchomić (skryptCzytaj dalej / Read more