{"id":25,"date":"2012-12-18T20:55:29","date_gmt":"2012-12-18T19:55:29","guid":{"rendered":"http:\/\/explainit.pl\/blog\/?p=17"},"modified":"2016-08-09T21:00:22","modified_gmt":"2016-08-09T19:00:22","slug":"dlaczego-99-ze-100-to-tylko-1","status":"publish","type":"post","link":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/","title":{"rendered":"Dlaczego 99 ze 100 to tylko 1%?"},"content":{"rendered":"<p>W bazie danych umieszczamy tabel\u0119 zawieraj\u0105c\u0105 sto rekord\u00f3w, kt\u00f3re w kolumnie P\u0141E\u0106 posiadaj\u0105 99 razy warto\u015b\u0107 \u2018M\u2019 i jeden raz warto\u015b\u0107 \u2018K\u2019. Gromadzimy statystyki dla tej tabeli, gromadzimy histogram dla kolumny P\u0141E\u0106. Nast\u0119pnie wykonujemy zapytanie, kt\u00f3re w klauzuli WHERE posiada predykat UPPER(P\u0141E\u0106) = \u2018M\u2019. Jaka jest selektywno\u015b\u0107 tego predykatu? Oczywi\u015bcie 99%. Jak\u0105 selektywno\u015b\u0107 oszacuje optymalizator kosztowy? &#8230; 1%.<br \/>\nPrzyjrzyjmy si\u0119 poni\u017cszemu przyk\u0142adowi. Kolumna Rows w planie wykonania zapytania pokazuje oczekiwan\u0105 przez optymalizator liczb\u0119 rekord\u00f3w spe\u0142niaj\u0105cych nasz predykat (pami\u0119tajmy, \u017ce plan wykonania zapytania jest generowany _przed_ wykonaniem zapytania).<\/p>\n<p><code>SQL&gt; exec dbms_stats.gather_table_stats('SYS','ARMIA',method_opt=&gt;'FOR COLUMNS SIZE 2 PLEC');<br \/>\nSQL&gt; set autotrace on;<br \/>\nSQL&gt; select * from armia where upper(plec)='M';<br \/>\n...<br \/>\n99 wierszy zosta\u0142o wybranych.<br \/>\n...<br \/>\nPlan wykonywania<br \/>\n---------------------------------------------------------------------------<br \/>\n| Id | Operation\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Name\u00a0 | Rows | Bytes | Cost (%CPU)| Time\u00a0\u00a0\u00a0\u00a0 |<br \/>\n---------------------------------------------------------------------------<br \/>\n| 0\u00a0 | SELECT STATEMENT |\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | 1\u00a0\u00a0\u00a0 | 5\u00a0\u00a0\u00a0\u00a0 | 2 (0)\u00a0\u00a0\u00a0\u00a0\u00a0 | 00:00:01 |<br \/>\n|* 1 | TABLE ACCESS FULL| ARMIA | 1\u00a0\u00a0\u00a0 | 5\u00a0\u00a0\u00a0\u00a0 | 2 (0)\u00a0\u00a0\u00a0\u00a0\u00a0 | 00:00:01 |<br \/>\n---------------------------------------------------------------------------<br \/>\n<\/code><\/p>\n<p>Rows=1! A jak wida\u0107, zapytanie naprawd\u0119 zwr\u00f3ci\u0142o 99 rekord\u00f3w. Co jest przyczyn\u0105 tak powa\u017cnej pomy\u0142ki optymalizatora? Ot\u00f3\u017c sam fakt posiadania histogramu dla kolumny nie umo\u017cliwia szacowania selektywno\u015bci dla wyra\u017cenia funkcyjnego, w kt\u00f3rym taka kolumna uczestniczy. Bo oczywi\u015bcie selektywno\u015b\u0107 predykatu PLEC=\u2019M\u2019 (a dla tego predykatu mamy histogram) nie musi by\u0107 taka sama jak predykatu UPPER(PLEC)=\u2019M\u2019. W ostatnim przypadku serwer Oracle Database automatycznie przyjmuje selektywno\u015b\u0107 \u201ez kapelusza\u201d wynosz\u0105c\u0105 1% (lub 5% dla predykat\u00f3w nier\u00f3wno\u015bciowych).<\/p>\n<p>Czy mo\u017cna w jaki\u015b spos\u00f3b pom\u00f3c optymalizatorowi we w\u0142a\u015bciwym szacowaniu selektywno\u015bci predykat\u00f3w opartych na wyra\u017ceniach? Mo\u017cna. W gr\u0119 wchodzi albo wymuszenie dynamicznego pr\u00f3bkowania, albo zebranie histogramu dla wyra\u017cenia funkcyjnego UPPER(PLEC) \u2013 jawnie lub w wyniku utworzenia indeksu funkcyjnego. Sprawd\u017amy.<\/p>\n<p><code>SQL&gt; alter system set optimizer_dynamic_sampling=3;<br \/>\nSQL&gt; select * from armia where upper(plec)='M';<br \/>\n...<br \/>\n99 wierszy zosta\u0142o wybranych.<br \/>\n...<br \/>\nPlan wykonywania<br \/>\n---------------------------------------------------------------------------<br \/>\n| Id | Operation\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 | Name\u00a0 | Rows | Bytes | Cost (%CPU)| Time\u00a0\u00a0\u00a0\u00a0 |<br \/>\n---------------------------------------------------------------------------<br \/>\n| 0\u00a0 | SELECT STATEMENT | \u00a0 \u00a0 \u00a0 | 99 \u00a0 | 495\u00a0\u00a0 | 2 (0)\u00a0\u00a0\u00a0\u00a0\u00a0 | 00:00:01 |<br \/>\n|* 1 | TABLE ACCESS FULL| ARMIA | 99 \u00a0 | 495\u00a0\u00a0 | 2 (0)\u00a0\u00a0\u00a0\u00a0\u00a0 | 00:00:01 |<br \/>\n---------------------------------------------------------------------------<br \/>\n<\/code><\/p>\n<p>Rows=99. Teraz estymacja jest poprawna. Wprawdzie w mojej prostej demonstracji plan wykonania zapytania nie uleg\u0142 zmianie, lecz w \u201e\u017cyciowych\u201d zastosowaniach konsekwencje by\u0142yby du\u017co powa\u017cniejsze.<\/p>\n<p><!-- [if gte mso 9]><xml>\n<o:DocumentProperties>\n<o:Version>12.00<\/o:Version>\n<\/o:DocumentProperties>\n<\/xml><![endif]--><\/p>\n<p>&nbsp;<\/p>\n<p><!-- [if gte mso 9]><xml>\n<w:WordDocument>\n<w:View>Normal<\/w:View>\n<w:Zoom>0<\/w:Zoom>\n<w:TrackMoves\/>\n<w:TrackFormatting\/>\n<w:HyphenationZone>21<\/w:HyphenationZone>\n<w:PunctuationKerning\/>\n<w:ValidateAgainstSchemas\/>\n<w:SaveIfXMLInvalid>false<\/w:SaveIfXMLInvalid>\n<w:IgnoreMixedContent>false<\/w:IgnoreMixedContent>\n<w:AlwaysShowPlaceholderText>false<\/w:AlwaysShowPlaceholderText>\n<w:DoNotPromoteQF\/>\n<w:LidThemeOther>PL<\/w:LidThemeOther>\n<w:LidThemeAsian>X-NONE<\/w:LidThemeAsian>\n<w:LidThemeComplexScript>X-NONE<\/w:LidThemeComplexScript>\n<w:Compatibility>\n<w:BreakWrappedTables\/>\n<w:SnapToGridInCell\/>\n<w:WrapTextWithPunct\/>\n<w:UseAsianBreakRules\/>\n<w:DontGrowAutofit\/>\n<w:SplitPgBreakAndParaMark\/>\n<w:DontVertAlignCellWithSp\/>\n<w:DontBreakConstrainedForcedTables\/>\n<w:DontVertAlignInTxbx\/>\n<w:Word11KerningPairs\/>\n<w:CachedColBalance\/>\n<\/w:Compatibility>\n<w:BrowserLevel>MicrosoftInternetExplorer4<\/w:BrowserLevel>\n<m:mathPr>\n<m:mathFont m:val=\"Cambria Math\"\/>\n<m:brkBin m:val=\"before\"\/>\n<m:brkBinSub m:val=\"&#45;-\"\/>\n<m:smallFrac m:val=\"off\"\/>\n<m:dispDef\/>\n<m:lMargin m:val=\"0\"\/>\n<m:rMargin m:val=\"0\"\/>\n<m:defJc m:val=\"centerGroup\"\/>\n<m:wrapIndent m:val=\"1440\"\/>\n<m:intLim m:val=\"subSup\"\/>\n<m:naryLim m:val=\"undOvr\"\/>\n<\/m:mathPr><\/w:WordDocument>\n<\/xml><![endif]--><!-- [if gte mso 9]><xml>\n<w:LatentStyles DefLockedState=\"false\" DefUnhideWhenUsed=\"true\" DefSemiHidden=\"true\" DefQFormat=\"false\" DefPriority=\"99\" LatentStyleCount=\"267\">\n<w:LsdException Locked=\"false\" Priority=\"0\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Normal\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"heading 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 7\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 8\"\/>\n<w:LsdException Locked=\"false\" Priority=\"9\" QFormat=\"true\" Name=\"heading 9\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 7\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 8\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" Name=\"toc 9\"\/>\n<w:LsdException Locked=\"false\" Priority=\"35\" QFormat=\"true\" Name=\"caption\"\/>\n<w:LsdException Locked=\"false\" Priority=\"10\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Title\"\/>\n<w:LsdException Locked=\"false\" Priority=\"1\" Name=\"Default Paragraph Font\"\/>\n<w:LsdException Locked=\"false\" Priority=\"11\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtitle\"\/>\n<w:LsdException Locked=\"false\" Priority=\"22\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Strong\"\/>\n<w:LsdException Locked=\"false\" Priority=\"20\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Emphasis\"\/>\n<w:LsdException Locked=\"false\" Priority=\"59\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Table Grid\"\/>\n<w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Placeholder Text\"\/>\n<w:LsdException Locked=\"false\" Priority=\"1\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"No Spacing\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 1\"\/>\n<w:LsdException Locked=\"false\" UnhideWhenUsed=\"false\" Name=\"Revision\"\/>\n<w:LsdException Locked=\"false\" Priority=\"34\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"List Paragraph\"\/>\n<w:LsdException Locked=\"false\" Priority=\"29\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Quote\"\/>\n<w:LsdException Locked=\"false\" Priority=\"30\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Quote\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 1\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 2\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 3\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 4\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 5\"\/>\n<w:LsdException Locked=\"false\" Priority=\"60\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Shading Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"61\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light List Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"62\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Light Grid Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"63\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 1 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"64\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Shading 2 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"65\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 1 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"66\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium List 2 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"67\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 1 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"68\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 2 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"69\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Medium Grid 3 Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"70\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Dark List Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"71\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Shading Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"72\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful List Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"73\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" Name=\"Colorful Grid Accent 6\"\/>\n<w:LsdException Locked=\"false\" Priority=\"19\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Emphasis\"\/>\n<w:LsdException Locked=\"false\" Priority=\"21\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Emphasis\"\/>\n<w:LsdException Locked=\"false\" Priority=\"31\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Subtle Reference\"\/>\n<w:LsdException Locked=\"false\" Priority=\"32\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Intense Reference\"\/>\n<w:LsdException Locked=\"false\" Priority=\"33\" SemiHidden=\"false\" UnhideWhenUsed=\"false\" QFormat=\"true\" Name=\"Book Title\"\/>\n<w:LsdException Locked=\"false\" Priority=\"37\" Name=\"Bibliography\"\/>\n<w:LsdException Locked=\"false\" Priority=\"39\" QFormat=\"true\" Name=\"TOC Heading\"\/>\n<\/w:LatentStyles>\n<\/xml><![endif]--><!-- [if gte mso 10]>\n\n\n\n<style>\n \/* Style Definitions *\/\ntable.MsoNormalTable\n{mso-style-name:Standardowy;\nmso-tstyle-rowband-size:0;\nmso-tstyle-colband-size:0;\nmso-style-noshow:yes;\nmso-style-priority:99;\nmso-style-qformat:yes;\nmso-style-parent:\"\";\nmso-padding-alt:0cm 5.4pt 0cm 5.4pt;\nmso-para-margin-top:0cm;\nmso-para-margin-right:0cm;\nmso-para-margin-bottom:10.0pt;\nmso-para-margin-left:0cm;\nline-height:115%;\nmso-pagination:widow-orphan;\nfont-size:11.0pt;\nfont-family:\"Calibri\",\"sans-serif\";\nmso-ascii-font-family:Calibri;\nmso-ascii-theme-font:minor-latin;\nmso-hansi-font-family:Calibri;\nmso-hansi-theme-font:minor-latin;\nmso-fareast-language:EN-US;}\n<\/style>\n\n<![endif]--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W bazie danych umieszczamy tabel\u0119 zawieraj\u0105c\u0105 sto rekord\u00f3w, kt\u00f3re w kolumnie P\u0141E\u0106 posiadaj\u0105 99 razy warto\u015b\u0107 \u2018M\u2019 i jeden raz warto\u015b\u0107 \u2018K\u2019. Gromadzimy statystyki dla tej tabeli, gromadzimy histogram dla kolumny P\u0141E\u0106. Nast\u0119pnie wykonujemy zapytanie, kt\u00f3re w klauzuli WHERE posiada predykat UPPER(P\u0141E\u0106) = \u2018M\u2019. Jaka jest selektywno\u015b\u0107 tego predykatu? Oczywi\u015bcie 99%. Jak\u0105 selektywno\u015b\u0107 oszacuje optymalizator <a href=\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Dlaczego 99 ze 100 to tylko 1%?<\/span>[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[12,20],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dlaczego 99 ze 100 to tylko 1%? - Explain IT<\/title>\n<meta name=\"description\" content=\"Dlaczego 99 ze 100 to tylko 1%?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dlaczego 99 ze 100 to tylko 1%? - Explain IT\" \/>\n<meta property=\"og:description\" content=\"Dlaczego 99 ze 100 to tylko 1%?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Explain IT\" \/>\n<meta property=\"article:published_time\" content=\"2012-12-18T19:55:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-08-09T19:00:22+00:00\" \/>\n<meta name=\"author\" content=\"Maciej Zakrzewicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Maciej Zakrzewicz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\"},\"author\":{\"name\":\"Maciej Zakrzewicz\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\"},\"headline\":\"Dlaczego 99 ze 100 to tylko 1%?\",\"datePublished\":\"2012-12-18T19:55:29+00:00\",\"dateModified\":\"2016-08-09T19:00:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\"},\"wordCount\":267,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"keywords\":[\"optymalizator\",\"statystyki\"],\"articleSection\":[\"Oracle Database\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\",\"name\":\"Dlaczego 99 ze 100 to tylko 1%? - Explain IT\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\"},\"datePublished\":\"2012-12-18T19:55:29+00:00\",\"dateModified\":\"2016-08-09T19:00:22+00:00\",\"description\":\"Dlaczego 99 ze 100 to tylko 1%?\",\"breadcrumb\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/explainit.pl\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dlaczego 99 ze 100 to tylko 1%?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\",\"url\":\"https:\/\/explainit.pl\/wordpress\/\",\"name\":\"Explain IT\",\"description\":\"Autorska pracownia doradztwa i szkole\u0144 IT - Maciej Zakrzewicz - szkolenia, ekspertyzy, wdro\u017cenia. Technologie Oracle, PostgreSQL, MySQL.\",\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/explainit.pl\/wordpress\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\",\"name\":\"Explain IT\",\"url\":\"https:\/\/explainit.pl\/wordpress\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png\",\"contentUrl\":\"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png\",\"width\":196,\"height\":64,\"caption\":\"Explain IT\"},\"image\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\",\"name\":\"Maciej Zakrzewicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g\",\"caption\":\"Maciej Zakrzewicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dlaczego 99 ze 100 to tylko 1%? - Explain IT","description":"Dlaczego 99 ze 100 to tylko 1%?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/","og_locale":"pl_PL","og_type":"article","og_title":"Dlaczego 99 ze 100 to tylko 1%? - Explain IT","og_description":"Dlaczego 99 ze 100 to tylko 1%?","og_url":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/","og_site_name":"Explain IT","article_published_time":"2012-12-18T19:55:29+00:00","article_modified_time":"2016-08-09T19:00:22+00:00","author":"Maciej Zakrzewicz","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Maciej Zakrzewicz","Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#article","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/"},"author":{"name":"Maciej Zakrzewicz","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219"},"headline":"Dlaczego 99 ze 100 to tylko 1%?","datePublished":"2012-12-18T19:55:29+00:00","dateModified":"2016-08-09T19:00:22+00:00","mainEntityOfPage":{"@id":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/"},"wordCount":267,"commentCount":1,"publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"keywords":["optymalizator","statystyki"],"articleSection":["Oracle Database"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/","url":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/","name":"Dlaczego 99 ze 100 to tylko 1%? - Explain IT","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/#website"},"datePublished":"2012-12-18T19:55:29+00:00","dateModified":"2016-08-09T19:00:22+00:00","description":"Dlaczego 99 ze 100 to tylko 1%?","breadcrumb":{"@id":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/explainit.pl\/wordpress\/2012\/12\/18\/dlaczego-99-ze-100-to-tylko-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/explainit.pl\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Dlaczego 99 ze 100 to tylko 1%?"}]},{"@type":"WebSite","@id":"https:\/\/explainit.pl\/wordpress\/#website","url":"https:\/\/explainit.pl\/wordpress\/","name":"Explain IT","description":"Autorska pracownia doradztwa i szkole\u0144 IT - Maciej Zakrzewicz - szkolenia, ekspertyzy, wdro\u017cenia. Technologie Oracle, PostgreSQL, MySQL.","publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/explainit.pl\/wordpress\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/explainit.pl\/wordpress\/#organization","name":"Explain IT","url":"https:\/\/explainit.pl\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png","contentUrl":"https:\/\/explainit.pl\/wordpress\/wp-content\/uploads\/2016\/08\/explainITmini.png","width":196,"height":64,"caption":"Explain IT"},"image":{"@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219","name":"Maciej Zakrzewicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9c98d020128b142a480aa35a22300a69?s=96&d=mm&r=g","caption":"Maciej Zakrzewicz"}}]}},"_links":{"self":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/25"}],"collection":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":2,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":342,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/25\/revisions\/342"}],"wp:attachment":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}