- Wiersz odnotowuje wywołanie transakcji — nazwę funkcji, jej parametry oraz moment uruchomienia.
- Status
ACH = 1wyróżnia ostatnią transakcję użytkownika, co pozwala pokazać mu punkt, w którym przerwał pracę. - Rejestr odpowiada na pytanie, których funkcji nikt nie używa — a to podstawa upraszczania menu.
- Cztery indeksy obsługują zarówno widok „ostatnio używane”, jak i analizę wykorzystania w czasie.
Do czego służy tabela [dbo].[_users_activity]
Menu systemu magazynowego po kilku latach rozwoju liczy dziesiątki pozycji, z których codziennie używana jest garść. Tabela [dbo].[_users_activity] pozwala odróżnić jedne od drugich, rejestrując każde wywołanie transakcji razem z parametrami i czasem.
Zapis ma dwa zastosowania działające w różnych skalach czasowych. Doraźnie zasila widok ostatnio używanych funkcji — wyróżniony statusem ACH = 1 wiersz wskazuje transakcję, na której użytkownik skończył pracę, więc po zalogowaniu może do niej wrócić jednym kliknięciem. Docelowo dostarcza danych do przeglądu: które pozycje menu są martwe i można je ukryć.
Kolumny FOLDER, TRANSAKCJA i PLIK opisują wywołanie na trzech poziomach szczegółowości — od obszaru, przez nazwę funkcji, po przekazane parametry. Ta ostatnia bywa najciekawsza przy analizie: pokazuje nie tylko, że ktoś otworzył zestawienie, ale też z jakim zakresem dat i filtrem, co tłumaczy, dlaczego jedno wywołanie trwało sekundę, a inne minutę.
Drugie zastosowanie bywa pomijane, a to ono daje najwięcej: menu ograniczone do funkcji faktycznie używanych skraca czas szkolenia nowych pracowników.
Budowa tabeli — wykaz kolumn
Dziewięć kolumn opisuje wywołanie transakcji, jego autora oraz moment wykonania.
| Kolumna | Typ | Wymagana | Znaczenie |
|---|---|---|---|
ACH | varchar(1) tekst do 1 znaków | nie | ACH=1 - ostatnia wywołana transakcja prze użytkownika |
DDOWOD | date data | tak | Data uruchomienia transakcji |
FOLDER | varchar(500) tekst do 500 znaków | nie | Transakcja |
ID_USER_ACTIVITY | int liczba całkowita | tak | Unikalny identyfikator wiersza w tabeli |
KIEDY | datetime data i godzina | tak | Data i godzina wywołania transakcji |
OPIS | varchar(max) tekst bez limitu długości | nie | Opis wywołanej transakcji |
PLIK | varchar(500) tekst do 500 znaków | nie | Parametry wywołanej transakcji |
TRANSAKCJA | varchar(500) tekst do 500 znaków | tak | Wywołana transakcja |
USERNAME | varchar(50) tekst do 50 znaków | tak | Nazwa użytkownika |
Kolumny TRANSAKCJA, FOLDER i PLIK mają po pięćset znaków, bo mieszczą pełne adresy wywołań wraz z parametrami. Przy analizie warto grupować po skróconej wartości, inaczej każde wywołanie z innym filtrem trafi do osobnej grupy.
Indeksy i wydajność zapytań
Cztery indeksy odpowiadają dwóm sposobom korzystania z rejestru: bieżącemu i analitycznemu.
| Indeks | Kolumny | Rodzaj |
|---|---|---|
PK__users_activity | ID_USER_ACTIVITY | klucz główny |
USERNAME | USERNAME | zwykły |
USERNAME_ACH | ID_USER_ACTIVITY, USERNAME, ACH | zwykły |
USERNAME_KIEDY | USERNAME, KIEDY | zwykły |
Indeks USERNAME_ACH obsługuje widok ostatnio używanej transakcji — zapytanie zadawane przy każdym zalogowaniu. Indeks USERNAME_KIEDY służy analizie: pozwala pobrać aktywność jednego użytkownika w zadanym okresie bez przeglądania całej tabeli.
Przegląd menu na podstawie rzeczywistego wykorzystania
Rejestr aktywności odpowiada na pytania, których nie da się rozstrzygnąć w rozmowie — bo użytkownicy rzadko pamiętają, czego naprawdę używają.
- Funkcje bez ani jednego wywołania w ciągu roku to najpewniejsi kandydaci do ukrycia; zwykle są pozostałością po analizie przedwdrożeniowej.
- Funkcje używane przez jedną osobę nie muszą znikać, ale nie powinny zajmować miejsca w menu wszystkich pozostałych.
- Rozkład w ciągu dnia pokazuje, kiedy przypada szczyt — a to podpowiada, kiedy nie planować zadań obciążających bazę.
- Powtarzające się wywołania tej samej transakcji z tymi samymi parametrami wskazują na czynność nadającą się do automatyzacji.
- Zestawienia otwierane z bardzo szerokim zakresem dat są zwykle przyczyną skarg na wydajność — i da się je wskazać po parametrach.
Ostatni punkt jest praktycznie najcenniejszy. Skarga „system działa wolno” rzadko dotyczy całego systemu; niemal zawsze chodzi o jedno konkretne zestawienie uruchamiane z zakresem obejmującym kilka lat. Kolumna z parametrami pozwala to potwierdzić bez zgadywania, a rozwiązaniem bywa domyślne ograniczenie zakresu, nie przebudowa zapytania.
Jak korzystać z tabeli w praktyce
Przy analizie aktywności użytkowników warto pamiętać o kilku rzeczach:
- Grupuj po skróconej nazwie transakcji; pełna wartość zawiera parametry, więc każde wywołanie trafiłoby do osobnej grupy.
- Porównuj listę pozycji menu z listą faktycznie wywoływanych transakcji — różnica to gotowa lista do przeglądu.
- Sprawdzaj parametry przy skargach na wydajność; przyczyną jest zwykle zakres dat, nie samo zapytanie.
- Nie traktuj rejestru jako narzędzia oceny pracy; mierzy liczbę kliknięć, a nie wykonaną robotę.
- Archiwizuj wpisy starsze niż rok — do analizy trendów wystarczają dane zagregowane.
- Uwzględnij ten rejestr w polityce ochrony danych; zawiera informacje o aktywności konkretnych osób.
Transakcje uporządkowane według rzeczywistego wykorzystania w ostatnim roku — podstawa przeglądu menu:
SELECT LEFT(TRANSAKCJA, 60) AS TRANSAKCJA,
COUNT(*) AS WYWOLAN,
COUNT(DISTINCT USERNAME) AS UZYTKOWNIKOW,
MAX(KIEDY) AS OSTATNIO
FROM dbo._users_activity
WHERE KIEDY >= DATEADD(YEAR, -1, GETDATE())
GROUP BY LEFT(TRANSAKCJA, 60)
ORDER BY WYWOLAN;
Sortowanie rosnące jest tu celowe — na początku wyniku znajdą się funkcje używane najrzadziej, czyli te, o które chodzi przy porządkowaniu menu.
Osobno warto ustalić okres przechowywania. Rejestr rośnie z każdym kliknięciem, więc przy kilkudziesięciu użytkownikach pracujących na trzy zmiany przyrost jest znaczny. Do analizy trendów w skali roku wystarczają dane zagregowane — liczba wywołań każdej transakcji w podziale na miesiące — a te zajmują ułamek miejsca. Szczegółowe wpisy warto zachować przez kilka miesięcy, bo tyle wystarcza do diagnozy skarg na wydajność.
Rejestr aktywności bywa mylony z kontrolą pracowników i z tego powodu bywa wyłączany. Szkoda, bo jego wartość leży gdzie indziej: to jedyne źródło danych pozwalające uprościć system na podstawie faktów zamiast wrażeń. Menu ograniczone do funkcji faktycznie używanych skraca szkolenie nowej osoby o kilka godzin.
Powiązane tabele i dokumentacja
Rejestr aktywności uzupełnia pozostałe zapisy dotyczące pracy użytkowników: