zabij wszystkie zapytania - mysql
<p>czasami podczas snafu muszę uruchomić <code>kill query xxxxxxx</code> dwadzieścia lub trzydzieści razy. dowolny rodzaj <code>kill all</code> polecenie brakuje mi?</p><p>z powodu tego, że nie lubię pisać.</p>
<p>z wiersza poleceń systemu linux</p><pre><code>for proc\_to\_kill in `mysql -h... -u... -p... -a --skip-column-names -e"show processlist" | grep -v "system user" | awk '{print $1}'` ; do mysql -h... -u... -p... -a --skip-column-names -e"kill query ${proc\_to\_kill}" ; done </code></pre><p>możesz zmienić opcję grep w nagłówku pętli for, aby zlokalizować określonego użytkownika lub określony ciąg w zapytaniu.</p><p>jeśli masz mysql 5.1, w którym lista procesów znajduje się w pliku informacje\_schema, możesz to zrobić, aby wygenerować polecenia kill query zbiorczo z poziomu klienta mysql:</p><pre><code>select group\_concat(concat('kill query ',id,';') separator ' ') killquery from information\_schema.processlist where user&lt;&gt;'system user'\g </code></pre><p>możesz wykonać klauzule where dla pola info, aby wyszukać określone zapytanie, pole time dla zapytań długo działających lub pole db dla określonej bazy danych.</p>
Ok. Znalazłem to w czym problem.


Na początku myślałem, że to problem z DataProvided, ale to nie było. Odkryłem ten sam problem w SQLServer 2000 ....


Wyszukiwanie w google dowiedziałem się czegoś o plan wykonania. Biorąc w ten sposób, że zapytania zwiększyło wydajność 50%.


Krótki życiorys tego problemu jest to, że podczas wykonywania SP kodem, DBMS ma pewne problemy z planu wykonania, a nie korzystać z indeksów ...


Lepszą odpowiedź jest w tym poście:
 [Parametr Wąchania (lub Fałszowanie) w SQL Server](https://stackoverflow.com/questions/211355/parameter-sniffing-or-spoofing-in-sql-server)


Mam nadzieję, że to Ci pomoże. Z ograniczeniem, że klauzula warunek może być „coś”, to jesteś ograniczony do skanowania całą listę i stosując warunek.


Jeśli istnieją ograniczenia dotyczące klauzuli stan, wtedy można spojrzeć na organizowanie danych do bardziej efektywnie obsługiwać zapytań.


Na przykład, przykładowy kod z „byFirstLetter” słowniku nie pomaga w ogóle z „endswith” zapytania.


Więc tak naprawdę sprowadza się do tego, co pyta chcesz zrobić przed tymi danymi.


W bazach danych, problem ten jest ciężar „optymalizator zapytań”. W typowej bazy danych, jeśli masz bazę danych bez indeksów, oczywiście każde zapytanie będzie skan tabeli. Jak dodać indeksów w tabeli, optymalizator może użyć tych danych do bardziej wyrafinowanych zapytań planuje lepiej dostać się do danych. To w istocie problem, który opisujesz.


Gdy masz bardziej konkretny podzbiór typów kwerend następnie można zrobić lepszą decyzję, co struktura jest najlepsza. Ponadto, należy wziąć pod uwagę ilość danych. Jeśli masz listę 10 elementów każdy mniej niż 100 bajtów, skan wszystko może okazać się najszybciej, co można zrobić, ponieważ masz taką małą ilość danych. Oczywiście, że nie skaluje się do elementów 1M, ale nawet sprytnych technik dostępu nosić koszt w instalacji, konserwacji (jak utrzymanie indeksu) i pamięć.


**EDIT** , na podstawie komentarza


Jeśli jest to auto Nieukończenie, jeśli dane są statyczne, a następnie posortować je i używać przeszukiwanie binarne. Nie jesteś naprawdę dzieje się szybciej niż to.


Jeśli dane są dynamiczne, a następnie zapisać go w zrównoważonym drzewie, i szukać tego. To skutecznie wyszukiwanie binarne, a to pozwala zachować dodać dane losowo.


Coś jeszcze jest jakaś specjalność na tych pojęć. wpisz pierwszą literę tego czegoś, najedż na to w tej liście, która się otwiera i wciśnij delete


naj??? druga pewnie jest dla sprawdzenia poprwanosci odpowiedzi, kucze nie pamietam dokladnie tych komend ale sprobuj skopjowac je z tej gotowej tabelki i ewentualnie cos pozmieniaj- a dokladniej t wspolrzedne pol zeby sie zgadzaly (wstaw tylko w pierwszych ramkach a reszte zlap za jeden rog i przeciagnij to ci sie skopiuje dla innych wynikow) przed poleceniem "ping [host|ip] > [plik]" wpisz polecenie "chcp 1250".  
  
dzieje się tak z powodu różnic w kodowaniu tekstu przez wiersz poleceń i notatnik:  
  
wiersz poleceń: 852.  
notatnik: 1250. nie pamiętam,kiedy ostatnio sprawdzałam- robię to tylko wtedy,gdy do kogoś napiszę.  
głównie to spamy. odpowiedzieliśmy już 3-krotnie na pani pytanie. prosimy śledzić nasze wpisy. nie ma potrzeby zadawania tego samego pytania ponownie. Ja mam ustawione hasło literowe, nie wzorowe czy jakieś inne, na literowym wpisujesz kilka razy złe hasło, później czekasz 30 sekund on odlicza i od nowa wpisujesz. Możesz to robić w nieskończoność. Nie wyświetla się "nie pamiętam hasła". Co ty na to, może znacie inne sposoby? oprócz hard reset. Cóż, jeden z reaons dlaczego zajęcia zazwyczaj zawierają członków prywatnych z publicznymi pobierające / ustawiające jest dokładnie ponieważ mogą zweryfikować dane.


Jeśli masz numer niż może wynosić od 1 do 100, na pewno umieścić coś w seter, że sprawdza, a następnie może rzucić wyjątek, który jest złowionych przez kod. Powód jest prosty: jeśli nie rób tego w seter, trzeba pamiętać, że od 1 do 100 ograniczenie każdym razem, gdy go ustawić, co prowadzi do kodu duplikaty lub gdy go zapomnieć, prowadzi do nieprawidłowym stanie.


Jeśli chodzi o wydajność, jestem z Knuth tutaj:



> 
> „Powinniśmy zapomnieć o małej wydajności, powiedzmy około 97% czasu. Przedwczesna optymalizacja jest źródłem wszelkiego zła”
> 
> 
> Podanie uzasadnienia negatywnej oceny byłoby dobrą opcją, bo wszyscy wiedzieliby co dla kogo jest powodem do "minusowania". A to mogłoby niektóre osoby przyhamować w swoich zapędach.  

Jednak zajmowanie się rozstrzyganiem kto ma rację przez moderatorów jest niewykonalne, bo ich tylu nie ma.  

Propozycja taka i podobne pojawiały się na forach, ale to niestety to w większości ginie nieprzeczytane, bo:  

1) tu - nie po angielsku;  

2) po angielsku też nie ma kto tego czytać, bo jest tego ogrom;  

3) pracownicy mają inne przydzielone zadania.  

Niestety tak to wygląda. Mimo wszystko życzę udanych batalii z trolami.