Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
Optimalizace SQL dotazů, která se nevyplácí uspěchat
Strona
Dyskusja
polski
Czytaj
Edytuj
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
<br>Další častou chybou je zbytečné načítání všech sloupců. Místo SELECT * si napište pouze ty sloupce, které skutečně potřebujete. Tím se sníží objem přenášených dat a v ně[https://www.Business-opportunities.biz/?s=kter%C3%BDch kterých] případech může databáze použít i tzv. covering index, který obsahuje všechny požadované hodnoty a nemusí přistupovat k samotné tabulce. To platí dvojnásob, pokud pracujete s tabulkami, které mají mnoho sloupců nebo obsahují velké textové hodnoty. Optimalizace dotazu není jen o tom, co se provádí, ale také o tom, kolik dat se zbytečně tahá mezi databází a aplikací.<br><br>Poslední rada: pravidelně spouštějte celou testovací sadu, ideálně po každé změně kódu. Použijte nástroj pro měření pokrytí, abyste zjistili, které části kódu nejsou testovány. Ale nesnažte se dosáhnout stoprocentního pokrytí za každou cenu. Mnohem důležitější je, aby testy testovaly správné věci a byly udržovatelné. Když narazíte na chybu, nejdřív napište test, který ji reprodukuje, a teprve potom opravujte kód. Tímto postupem nejenže opravíte chybu, ale také zabráníte jejímu návratu v budoucnu.<br><br>Nejčastější chybou je sestavování SQL dotazů pomocí prostého zřetězení řetězců. Typický příklad vypadá takto: příkaz, který má ověřit přihlášení, se staví jako text s vloženým uživatelským jménem a heslem. Když útočník zadá do pole [https://feswiki.com/index.php/Kdy%C5%BE_web_roste_bez_%C5%99%C3%A1du,_za%C4%8Dn%C4%9Bte_verzovat_takto rady pro rekonstrukci] jméno hodnotu jako ‘ OR ‘1’=‘1, výsledný dotaz se vyhodnotí jako pravdivý a aplikace ho pustí dál, aniž by znala skutečné heslo. Řešení je přitom technicky triviální: používat parametrizované dotazy nebo připravené příkazy (prepared statements). Tyto mechanismy oddělují SQL kód od dat a databáze vstup vždy interpretuje pouze jako hodnotu, ne jako příkaz.<br><br>Další pastí je role product ownera. V českých týmech se často stává, že je to manažer, který má jen málo času a zadání předává přes e-mail. To vede k tomu, že vývojáři neznají prioritu a sprint backlog se mění v průběhu. Product owner musí být součástí týmu, musí pravidelně odpovídat na otázky a mít rozhodovací pravomoc. Pokud to není možné, Scrum nebude fungovat, ať uděláte cokoli jiného. Zkuste mu dát jasný mandát a vyhraďte mu alespoň dvě hodiny denně na práci s backlogem.<br>V neposlední řadě věnujte pozornost počtu dotazů. Často se stává, že aplikace provede deset dotazů v cyklu místo jednoho, který by všechny potřebné údaje získal najednou. Spojení tabulek pomocí JOIN je sice občas považováno za pomalé, ale ve většině případů je stále výrazně efektivnější než volání v cyklu. Pokud se bez cyklu neobejdete, zkuste alespoň dávkové zpracování – sbírejte data [http://ingeekswetrust.de/index.php?title=Co_se_stane,_kdy%C5%BE_za%C4%8Dnete_s_Androidem_bez_pl%C3%A1nu barvy stěn do obýváku] pole a dotaz proveďte pro celý seznam hodnot najednou. Po každé změně vždy ověřte, zda se plán provedení skutečně zlepšil, a měřte čas v reálném provozu, ne jen na malých testovacích datech.<br><br>Než Scrum zavrhnete, [https://Www.Dictionary.com/browse/pod%C3%ADvejte podívejte] se na to, [http://miklagaard.no/index.php?title=Co_se_stane,_kdy%C5%BE_otestujete_mobiln%C3%AD_aplikaci_a%C5%BE_po_vyd%C3%A1n%C3%AD jak zařídit malou kuchyni] používáte jeho pravidla. Pokud máte pocit, že jde o zbytečnou byrokracii, zeptejte se, jestli nepoužíváte příliš mnoho formálních nástrojů. Scrum má být jednoduchý. Když zjistíte, že plánujete sprint na tři dny a píšete podrobné user story, děláte něco špatně. Zkuste místo toho začít s menšími kroky, s minimálními pravidly a s důrazem na zpětnou vazbu. Teprve pak uvidíte, že Scrum skutečně zrychluje práci a snižuje stres.<br><br>Základním krokem je analýza plánu provedení dotazu. Většina databázových systémů nabízí příkazy jako EXPLAIN nebo EXPLAIN ANALYZE. Z nich zjistíte, které části dotazu se provedou sekvenčním prohledáváním tabulky a kde se používá index. Typickou chybou je spoléhat na to, že index na sloupci použitého ve WHERE klauzuli automaticky urychlí vše. Ve skutečnosti záleží na selektivitě – pokud sloupec obsahuje jen pár unikátních hodnot, index nepomůže a optimalizátor ho stejně přeskočí. Sledujte proto odhad počtu řádků, který plán uvádí, a porovnejte ho s realitou.<br>Retrospektiva není formalita. Pokud ji odbýváte, přicházíte o nejcennější nástroj na zlepšování. Zkuste na ní použít jednoduchý rámec: If you have any questions relating to where and ways to utilize [https://jak.mazovia.edu.pl/index.php/Verzov%C3%A1n%C3%AD,_kter%C3%A9_v%C3%A1s_zrad%C3%AD:_nej%C4%8Dast%C4%9Bj%C5%A1%C3%AD_chyby_v_Gitu více o tom], you could contact us at our web-page. co fungovalo, co nefungovalo a co s tím uděláme příště. Důležité je, aby každý člen týmu měl možnost mluvit, a aby z každé retrospektivy vzešel jeden konkrétní, malý krok, který se skutečně udělá. Pokud se to nedaří, zeptejte se sami sebe, jestli je problém v procesu, nebo v tom, že se bojíte říct pravdu.<br><br>Další past je práce s daty. Kontejnery jsou ze své podstaty dočasné. Když je smažete příkazem docker rm, přijdete o všechna data, která v nich vznikla. Pokud potřebujete data uchovat, použijte volume: docker run -v /cesta/na/disku:/data moje-aplikace. Levou stranu dvojtečky určuje hostitel, pravou kontejner. Bez volume je každé sestavení a spuštění čistý stůl. To je v pořádku pro testy, ale ne pro databáze nebo uživatelské soubory. Pokud toto opomenete, budete data po každém restartu obnovovat zálohou.<br>
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony