Angielskifrancuskihiszpański

Ulubiona usługa OnWorks

pt-table-usagep — online w chmurze

Uruchom pt-table-usagep w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie pt-table-usagep, które można uruchomić w darmowym dostawcy usług hostingowych OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


pt-table-usage — Analizuj, w jaki sposób zapytania używają tabel.

STRESZCZENIE


Użycie: pt-table-usage [OPCJE] [PLIKI]

pt-table-usage odczytuje zapytania z dziennika i analizuje, w jaki sposób używają tabel. Jeśli nie ma PLIKU
określony, odczytuje STDIN. Drukuje raport dla każdego zapytania.

RYZYKO


Percona Toolkit jest dojrzały, sprawdzony w prawdziwym świecie i dobrze przetestowany, ale cała baza danych
narzędzia mogą stanowić zagrożenie dla systemu i serwera bazy danych. Przed użyciem tego narzędzia
Proszę:

· Przeczytaj dokumentację narzędzia

· Przejrzyj znane „BŁĘDY” narzędzia

· Przetestuj narzędzie na serwerze nieprodukcyjnym

· Wykonaj kopię zapasową serwera produkcyjnego i weryfikuj kopie zapasowe

OPIS


pt-table-usage odczytuje zapytania z dziennika i analizuje sposób, w jaki wykorzystują one tabele. Log powinien
być w formacie dziennika powolnych zapytań MySQL.

Użycie tabeli to coś więcej niż tylko wskazanie, które tabele odczytuje lub zapisuje zapytanie.
Wskazuje również przepływ danych: dane wejściowe i wyjściowe. Narzędzie określa przepływ danych wg
konteksty, w których pojawiają się tabele. Pojedyncze zapytanie może wykorzystywać tabelę w kilku różnych
konteksty jednocześnie. Dane wyjściowe narzędzia zawierają listę wszystkich kontekstów dla każdej tabeli. Ten
Lista CONTEXT-TABLE wskazuje sposób przepływu danych pomiędzy tabelami. Sekcja „WYJŚCIE” zawiera listę
możliwe konteksty i opisuje, jak czytać raport użycia tabeli.

Narzędzie analizuje spływ danych do poziomu poszczególnych kolumn, dlatego warto, jeśli
kolumny są jednoznacznie identyfikowane w zapytaniu. Jeśli zapytanie używa tylko jednej tabeli, to
wszystkie kolumny muszą pochodzić z tej tabeli i nie ma żadnych trudności. Ale jeśli zapytanie używa
wiele tabel, a nazwy kolumn nie są kwalifikowane jako tabele, wówczas konieczne jest użycie
„WYJAŚNIJ ROZSZERZONY”, a następnie „POKAŻ OSTRZEŻENIA”, aby określić, do których tabel kolumny
należeć.

Jeżeli narzędzie nie zna domyślnej bazy danych zapytania, co może nastąpić w przypadku bazy danych
nie zostanie wydrukowany w dzienniku, wtedy polecenie „WYJAŚNIJ ROZSZEROWANE” może zakończyć się niepowodzeniem. W takim przypadku możesz określić
domyślna baza danych z „--database”. Możesz także użyć „--create-table-definitions”
możliwość pomocy w rozwiązaniu niejasności.

WYDAJNOŚĆ


Narzędzie drukuje raport użycia dla każdej tabeli w każdym zapytaniu, podobnie do poniższego:

Query_id: 0x1CD27577D202A339.1
AKTUALIZACJA t1
WYBIERZ PODWÓJNY
DOŁĄCZ t1
DOŁĄCZ t2
GDZIE t1

Query_id: 0x1CD27577D202A339.2
AKTUALIZACJA t2
WYBIERZ PODWÓJNY
DOŁĄCZ t1
DOŁĄCZ t2
GDZIE t1

Pierwszy wiersz zawiera identyfikator zapytania, który domyślnie jest taki sam, jak te pokazane w pt-
raporty podsumowujące zapytania. Jest to suma kontrolna MD5 „odcisku palca” zapytania, czyli co
pozostaje po usunięciu literałów, zwijaniu białych znaków i wielu innych
transformacje. Identyfikator zapytania składa się z dwóch części oddzielonych kropką: identyfikatora zapytania i
numer stołu. Jeśli chcesz użyć innej wartości do identyfikacji zapytania, możesz to określić
opcja „--id-atrybut”.

W poprzednim przykładzie pokazano dwa akapity dla pojedynczego zapytania, a nie dwóch zapytań. Zauważ to
identyfikator zapytania jest identyczny dla obu, ale numer tabeli jest inny. Numer stołu
zwiększa się o 1 dla każdej tabeli aktualizowanej przez zapytanie. Tylko wielotabelowe zapytania UPDATE
może zaktualizować wiele tabel za pomocą jednego zapytania, więc numer tabeli to 1 dla wszystkich pozostałych
rodzaje zapytań. (Narzędzie nie obsługuje wielotabelowych zapytań DELETE.) Przykład
powyższe dane wyjściowe pochodzą z tego zapytania:

AKTUALIZUJ t1 JAKO DOŁĄCZ t2 JAKO b UŻYWAJĄC (id)
SET a.foo="bar", b.foo="bat"
GDZIE a.id=1;

Klauzula „SET” wskazuje, że zapytanie aktualizuje dwie tabele: „a” o aliasie „t1” i „b”
alias „t2”.

Po pierwszej linii narzędzie wypisuje zmienną liczbę linii TABELI KONTEKSTÓW. Możliwy
konteksty są następujące:

· WYBIERAĆ

WYBIERZ oznacza, że ​​zapytanie pobiera dane z tabeli z jednego z dwóch powodów. The
first ma zostać zwrócona użytkownikowi jako część zestawu wyników. Tylko zapytania SELECT
zwraca zestawy wyników, dzięki czemu raport zawsze pokazuje kontekst SELECT dla zapytań SELECT.

Drugi przypadek ma miejsce, gdy dane przepływają do innej tabeli w ramach INSERT lub UPDATE.
Na przykład zapytanie UPDATE w powyższym przykładzie ma zastosowanie:

WYBIERZ PODWÓJNY

Dotyczy to:

SET a.foo="bar", b.foo="bat"

Narzędzie używa DUAL dla wszelkich wartości, które nie pochodzą z tabeli, w tym przypadku
wartości literalne „bar” i „bat”. Jeśli ta klauzula „SET” byłaby zamiast tego „SET a.foo=b.foo”,
wtedy pełne użycie byłoby:

Query_id: 0x1CD27577D202A339.1
AKTUALIZACJA t1
WYBIERZ t2
DOŁĄCZ t1
DOŁĄCZ t2
GDZIE t1

Obecność kontekstu SELECT po innym kontekście, takim jak UPDATE lub INSERT,
wskazuje, gdzie UPDATE lub INSERT pobiera swoje dane. Od razu przykład
powyżej odzwierciedla zapytanie UPDATE, które aktualizuje wiersze w tabeli „t1” danymi z tabeli
„t2”.

· Każdy inny czasownik

Każdy inny czasownik, taki jak INSERT, UPDATE, DELETE itp. może być kontekstem. Te czasowniki
wskazują, że zapytanie w jakiś sposób modyfikuje dane. Jeśli kontekst SELECT następuje po jednym z
tych czasowników, zapytanie odczytuje dane z tabeli SELECT i zapisuje je do niej
tabela. Dzieje się tak na przykład w przypadku zapytań INSERT..SELECT lub UPDATE, które używają
wartości z tabel zamiast wartości stałych.

Te typy zapytań nie są obsługiwane: SET, LOAD i multi-table DELETE.

· DOŁĄCZYĆ

Kontekst JOIN wyświetla tabele, które są połączone, albo za pomocą jawnego JOIN w pliku
klauzula FROM lub niejawnie w klauzuli WHERE, na przykład „t1.id = t2.id”.

· GDZIE

Kontekst WHERE zawiera listę tabel używanych w klauzuli WHERE do filtrowania wyników.
Nie obejmuje to tabel, które są niejawnie połączone w klauzuli WHERE; to są
wymienione jako konteksty JOIN. Na przykład:

GDZIE t1.id > 100 ORAZ t1.id < 200 ORAZ t2.foo NIE JEST NULL

Prowadzi do:

GDZIE t1
GDZIE t2

Narzędzie wyświetla tylko odrębne tabele; dlatego tabela „t1” jest wymieniona tylko raz.

· LISTA

Kontekst TLIST zawiera listę tabel, do których zapytanie uzyskuje dostęp, ale które nie pojawiają się w żadnej
inny kontekst. Tabele te są zwykle niejawnym złączeniem kartezjańskim. Na przykład
zapytanie „WYBIERZ * Z t1, t2” daje w wyniku:

Identyfikator zapytania: 0xBDDEB6EDA41897A8.1
WYBIERZ t1
WYBIERZ t2
LISTA TLIST t1
LISTA TLIST t2

Po pierwsze, istnieją dwa konteksty SELECT, ponieważ „SELECT *” wybiera wiersze ze wszystkich
stoły; „t1” i „t2” w tym przypadku. Po drugie, tabele są niejawnie połączone, ale
bez żadnego warunku złączenia, co skutkuje złączeniem kartezjańskim, jak wskazano przez
kontekst TLIST dla każdego.

EXIT STATUS


pt-table-usage wychodzi 1 w przypadku jakiegokolwiek błędu lub 0 w przypadku braku błędów.

OPCJE


To narzędzie akceptuje dodatkowe argumenty wiersza poleceń. Zapoznaj się z „SKŁADNIĄ” i zastosowaniem
informacje o szczegóły.

--zapytaj-przepustka
Pytaj o hasło podczas łączenia się z MySQL.

--zestaw znaków
krótka forma: -A; typ: ciąg

Domyślny zestaw znaków. Jeśli wartość to utf8, ustawia tryb bin Perla na STDOUT na utf8,
przekazuje opcję mysql_enable_utf8 do DBD::mysql i uruchamia SET NAMES UTF8 po
połączenie z MySQL. Każda inna wartość ustawia binmode na STDOUT bez warstwy utf8,
i uruchamia SET NAMES po połączeniu z MySQL.

--konfig
typ: Tablica

Przeczytaj tę oddzieloną przecinkami listę plików konfiguracyjnych; jeśli jest określony, musi to być pierwszy
opcja w wierszu poleceń.

--stała-wartość-danych
typ: ciąg znaków; domyślnie: PODWÓJNY

Tabela do wydrukowania jako źródło danych stałych (literałów). To żadne dane nie
pobrane z tabel (lub podzapytań, ponieważ podzapytania nie są obsługiwane). Ten
zawiera wartości literałowe, takie jak ciągi znaków („foo”) i liczby (42) lub funkcje, takie jak
"TERAZ()". Na przykład w zapytaniu „INSERT INTO t (c) VALUES ('a')" ciąg znaków 'a'
to dane stałe, więc raport użycia tabeli wygląda następująco:

WSTAW t
WYBIERZ PODWÓJNY

Pierwszy wiersz wskazuje, że zapytanie wstawia dane do tabeli „t”, a drugi
linia wskazuje, że wstawiane dane pochodzą z jakiejś stałej wartości.

--[nie]kontynuuj w przypadku błędu
domyślnie: tak

Kontynuuj pracę, nawet jeśli wystąpi błąd.

--tworzenie-tabel-definicji
typ: tablica

Przeczytaj definicje „UTWÓRZ TABELĘ” z tej listy plików oddzielonych przecinkami. Jeśli ty
nie można użyć „--explain-extended”, aby w pełni zakwalifikować nazwy tabel i kolumn, możesz zapisać
wyjście „mysqldump --no-data” do jednego lub więcej plików i określ te pliki za pomocą
ta opcja. Narzędzie przeanalizuje wszystkie definicje „UTWÓRZ TABELĘ” z plików i
użyj tych informacji do zakwalifikowania nazw tabel i kolumn. Jeśli nazwa kolumny pojawia się w
wielu tabel lub nazwa tabeli pojawia się w wielu bazach danych, niejasności nie mogą wystąpić
zostać rozwiązany.

--demonize
Rozwidlić do tła i odczepić od muszli. Tylko systemy operacyjne POSIX.

--Baza danych
krótka forma: -D; typ: ciąg

Domyślna baza danych.

--domyślny-plik
krótka forma: -F; typ: ciąg

Odczytaj tylko opcje mysql z podanego pliku. Musisz podać bezwzględną nazwę ścieżki.

--wyjaśnij-rozszerzone
typ: DSN

Serwer do wykonywania zapytań EXPLAIN EXTENDED. Może to być konieczne do rozwiązania
niejednoznaczne (niekwalifikowane) nazwy kolumn i tabel.

--filtr
typ: ciąg

Odrzuć zdarzenia, dla których ten kod Perla nie zwraca wartości true.

Ta opcja to ciąg kodu Perla lub skompilowany plik zawierający kod Perla
do podprogramu z jednym argumentem: $event. Jeśli podana wartość jest plikiem do odczytu,
następnie pt-table-usage odczytuje cały plik i używa jego zawartości jako kodu.

Filtry zaimplementowano w taki sam sposób, jak w narzędziu pt-query-digest, więc proszę
więcej informacji można znaleźć w jego dokumentacji.

--help
Pokaż pomoc i wyjdź.

--gospodarz
krótka forma: -h; typ: ciąg

Połącz się z hostem.

--id-atrybut
typ: ciąg

Zidentyfikuj każde zdarzenie za pomocą tego atrybutu. Domyślnie jest używany identyfikator zapytania, czyli
suma kontrolna MD5 odcisku palca zapytania.

--Dziennik
typ: ciąg

Wydrukuj wszystkie dane wyjściowe do tego pliku po demonizacji.

--hasło
krótka forma: -p; typ: ciąg

Hasło do użycia podczas łączenia. Jeśli hasło zawiera przecinki, należy je zmienić
z odwrotnym ukośnikiem: "egzamin\,ple"

--pid
typ: ciąg

Utwórz podany plik PID. Narzędzie nie uruchomi się, jeśli plik PID już istnieje i
PID, który zawiera, jest inny niż aktualny PID. Jeśli jednak plik PID
istnieje, a PID, który zawiera, już nie działa, narzędzie nadpisze PID
plik z aktualnym PID. Plik PID jest usuwany automatycznie po zamknięciu narzędzia.

--Port
krótka forma: -P; typ: wewn

Numer portu używany do połączenia.

--postęp
typ: tablica; domyślnie: czas, 30

Wydrukuj raporty postępu do STDERR. Wartość jest rozdzielaną przecinkami listą składającą się z dwóch części.
Pierwszą częścią może być wartość procentowa, czas lub iteracje; druga część określa, w jaki sposób
często aktualizacja powinna być drukowana w procentach, sekundach lub liczbie iteracji.

--zapytanie
typ: ciąg

Przeanalizuj określone zapytanie zamiast czytać plik dziennika.

--czas odczytu
typ: czas; domyślnie: 0

Czekaj tak długo na zdarzenie z wejścia; 0 czekać wiecznie.

Ta opcja ustawia maksymalny czas oczekiwania na zdarzenie z wejścia. Jeśli jest impreza
nie odebrane po określonym czasie, narzędzie przestaje czytać dane wejściowe i drukuje je
raporty.

Ta opcja wymaga modułu Perl POSIX.

--czas wykonywania
typ: czas

Jak długo biec przed wyjściem. Domyślnie działa w nieskończoność (możesz przerwać za pomocą
CTRL-C).

--set-vars
typ: Tablica

Ustaw zmienne MySQL na tej rozdzielonej przecinkami liście par „zmienna=wartość”.

Domyślnie zestawy narzędzi:

oczekiwanie_czasu oczekiwania = 10000

Zmienne określone w wierszu poleceń zastępują te wartości domyślne. Na przykład,
określenie „--set-vars wait_timeout=500” zastępuje domyślną wartość 10000.

Narzędzie drukuje ostrzeżenie i kontynuuje pracę, jeśli nie można ustawić zmiennej.

--gniazdo elektryczne
krótkie formy; typ: ciąg

Plik gniazda używany do połączenia.

--użytkownik
krótka forma: -u; typ: ciąg

Użytkownik do logowania, jeśli nie jest aktualnym użytkownikiem.

--wersja
Pokaż wersję i wyjdź.

dsn OPCJE


Te opcje DSN są używane do tworzenia DSN. Każda opcja ma postać „opcja=wartość”.
W opcjach rozróżniana jest wielkość liter, więc P i p nie są tą samą opcją. Nie może być
spacja przed lub po znaku „=”, a jeśli wartość zawiera spację, należy ją umieścić w cudzysłowie.
Opcje DSN są oddzielone przecinkami. Zobacz stronę podręcznika percona-toolkit, aby uzyskać szczegółowe informacje.

· MA

dsn: zestaw znaków; kopia: tak

Domyślny zestaw znaków.

· D

kopia: nie

Domyślna baza danych.

F

dsn: mysql_read_default_file; kopia: nie

Odczytaj tylko domyślne opcje z podanego pliku

· H

dsn: gospodarz; kopia: tak

Połącz się z hostem.

· P

dsn: hasło; kopia: tak

Hasło do użycia podczas łączenia. Jeśli hasło zawiera przecinki, należy je zmienić
z odwrotnym ukośnikiem: "egzamin\,ple"

· P

dsn: port; kopia: tak

Numer portu używany do połączenia.

· S

dsn: mysql_socket; kopia: nie

Plik gniazda używany do połączenia.

· u

dsn: użytkownik; kopia: tak

Użytkownik do logowania, jeśli nie jest aktualnym użytkownikiem.

ŚRODOWISKO


Zmienna środowiskowa „PTDEBUG” umożliwia szczegółowe wyjście debugowania do STDERR. Umożliwić
debugowanie i przechwytywanie wszystkich danych wyjściowych do pliku, uruchom narzędzie takie jak:

PTDEBUG=1 użycie tabeli pt... > PLIK 2>&1

Uważaj: dane wyjściowe debugowania są obszerne i mogą wygenerować kilka megabajtów danych wyjściowych.

SYSTEM WYMAGANIA


Potrzebujesz Perla, DBI, DBD::mysql i kilku podstawowych pakietów, które powinny być zainstalowane w dowolnym
rozsądnie nowa wersja Perla.

Użyj pt-table-usagep online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad