Skip to main content

MS SQL: delete - czyszczenie tabel pracowników

Microsoft SQL Server Profiler

SQL Server Profiler służy do śledzenia, analizy i diagnozowania zdarzeń zachodzących w bazie danych Microsoft SQL Server. Jest to narzędzie graficzne, które przechwytuje i zapisuje zdarzenia, takie jak zapytania, procedury składowane czy blokady, w celu późniejszego przeanalizowania ich działania. Pozwala to na znajdowanie wolno działających zapytań, identyfikowanie wąskich gardeł wydajnościowych oraz rozwiązywanie problemów z blokadami i deadlockami. 

Główne zastosowania SQL Server Profilera:
  • Znajdowanie i diagnozowanie wolno działających zapytań: Umożliwia przechwycenie serii instrukcji Transact-SQL, które prowadzą do problemu z wydajnością.
  • Optymalizacja wydajności: Przechwycone dane można analizować, aby zoptymalizować system, np. poprzez dodanie odpowiednich indeksów.
  • Analiza blokad i deadlocków: Pomaga w identyfikowaniu i rozwiązywaniu problemów związanych z blokowaniem zasobów przez różne procesy.
  • Monitorowanie zdarzeń: Pozwala na śledzenie szerokiego zakresu zdarzeń, w tym logowań, transakcji, wywołań procedur i triggerów.
  • Tworzenie i testowanie planów wykonania: Można go użyć do przechwycenia dokładnego tekstu zapytania do wykorzystania w przewodniku po planie. 

image.png

image.png

Uruchom New Trace i zaloguj się jako użytkownik: sa

image.png

image.png

image.png

Aby zakończyć:

image.png

Microsoft SQL Server Management Studio

Włączenie okna SQL Query

image.png

Ustawienie bazy danych

Ustawienie aktualnej bazy danych, np. CDN_ELTES_PIGA:

USE ELTES_PIGA;
GO

Sprawdzenie aktualnie ustawionej bazy danych:

SELECT DB_NAME() AS BazaAktualna;

image.png

image.png

Wyświetlenie listy tabel

Z widoku systemowego INFORMATION_SCHEMA.TABLES

USE CDN_ELTES_PIGA;
GO

SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_SCHEMA, TABLE_NAME;

image.png

Z katalogu systemowego sys.tables

USE CDN_ELTES_PIGA;
GO

SELECT s.name AS SchemaName,
       t.name AS TableName,
       t.create_date,
       t.modify_date
FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id
ORDER BY s.name, t.name;

image.png

(Opcjonalnie) Jeśli chcesz też widzieć widoki

USE CDN_ELTES_PIGA;
GO

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
ORDER BY TABLE_TYPE, TABLE_SCHEMA, TABLE_NAME;

image.png

Sprawdzenie istnienia tabeli

USE CDN_ELTES_PIGA;
GO

-- Sprawdź, czy tabele istnieją
SELECT * FROM sys.tables WHERE name IN ('PracIdx') AND SCHEMA_NAME(schema_id) = 'cdn';
GO

image.png

Podgląd wybranej tabeli, np. cdn.Pracidx

USE CDN_ELTES_PIGA;
GO

-- Wyświetl zawartość tabeli dla pracownika J23
SELECT * FROM cdn.Pracidx WHERE PRI_Kod = 'J23' ORDER BY PRI_PriId DESC;
GO

image.png

Usuń zawartość tabeli cdn.Pracidx za wyjątkiem pracownika 'J23'

USE CDN_ELTES_PIGA;
GO

-- Wyświetl zawartość tabeli dla pracownika J23
DELETE FROM cdn.Pracidx WHERE PRI_Kod <> 'J23';
GO

Zmień zawartość tabeli cdn.PracKod i cdn.Pracidx za wyjątkiem pracownika 'J23' - animizacja danych

 

USE CDN_ELTES_PIGA;
GO
SELECT DB_NAME() AS BazaAktualna;

SELECT * FROM CDN_ELTES_PIGA.CDN.PracKod order by 1 desc;
DECLARE @i INT;
SET @i = 2;

WHILE @i <= 1350
BEGIN
	UPDATE CDN_ELTES_PIGA.CDN.PracKod SET PRA_kod = @i WHERE PRA_PraId = @i;
	SET @i = @i + 1;
END
SELECT * FROM CDN_ELTES_PIGA.CDN.PracKod order by 1 desc;
USE CDN_ELTES_PIGA;
GO
SELECT DB_NAME() AS BazaAktualna;

SELECT * FROM CDN_ELTES_PIGA.CDN.PracKod order by 1 desc;
DECLARE @i INT;
SET @i = 2;

WHILE @i <= 1350
BEGIN
	UPDATE CDN_ELTES_PIGA.CDN.PracKod SET PRA_kod = @i WHERE PRA_PraId = @i;
	SET @i = @i + 1;
END
SELECT * FROM CDN_ELTES_PIGA.CDN.PracKod order by 1 desc;

USE 

CDN_ELTES_PIGA; GO SELECT DB_NAME() AS BazaAktualna; SELECT * FROM CDN_ELTES_PIGA.CDN.PracNieobec order by 1 desc; DECLARE @i INT; SET @i = 1; WHILE @i <= 6000 BEGIN UPDATE CDN_ELTES_PIGA.CDN.PracNieobec SET PNB_Seria = @i, PNB_Numer = @i, PNB_Opis = @i WHERE PNB_PnbId = @i; SET @i = @i + 1; END SELECT * FROM CDN_ELTES_PIGA.CDN.PracNieobec order by 1 desc;