{"id":104,"date":"2013-01-30T13:42:09","date_gmt":"2013-01-30T12:42:09","guid":{"rendered":"http:\/\/explainit.pl\/blog\/?p=104"},"modified":"2019-01-11T08:52:23","modified_gmt":"2019-01-11T07:52:23","slug":"dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout","status":"publish","type":"post","link":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/","title":{"rendered":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!"},"content":{"rendered":"<p>Przyjrzyjmy si\u0119 ciekawemu zjawisku, kt\u00f3re przejawia si\u0119 tym, \u017ce czasami wykonanie zapytania SELECT powoduje modyfikacje blok\u00f3w dyskowych oraz zapisy danych powt\u00f3rzenia (Redo). W konsekwencji , wydajno\u015b\u0107 polecenia SELECT staje si\u0119 nieakceptowalna.<\/p>\n<p>W poni\u017cszym eksperymencie pos\u0142uguj\u0119 si\u0119 tabel\u0105 zawieraj\u0105c\u0105 milion rekord\u00f3w, zajmuj\u0105ca 130MB. W pierwszym kroku, na tabeli wykonuj\u0119 polecenie UPDATE, kt\u00f3re modyfikuje co pi\u0105ty rekord. Zagregowane statystyki sesji s\u0142usznie ukazuj\u0105 wykonanie modyfikacji blok\u00f3w danych oraz wygenerowanie danych powt\u00f3rzenia. Zatwierdzam transakcj\u0119, ko\u0144cz\u0119 sesj\u0119. W drugim kroku, rozpoczynam now\u0105 sesj\u0119 i wykonuj\u0119 proste zapytanie SELECT do tej samej tabeli. Uwaga! Tym razem zagregowane statystyki sesji pokazuj\u0105, \u017ce zmodyfikowano ponad 10 tysi\u0119cy blok\u00f3w danych i wygenerowano ok. 750KB danych powt\u00f3rzenia!! Dlaczego SELECT powoduje zapisy dyskowe?? SELECT przecie\u017c powinien wy\u0142\u0105cznie odczytywa\u0107 dane! Co wi\u0119cej, ponowne wykonanie takiego samego polecenia SELECT nie powoduje ju\u017c generowania dodatkowych zapis\u00f3w.<\/p>\n<p>Byli\u015bmy w\u0142a\u015bnie \u015bwiadkami ciekawego mechanizmu wydajno\u015bciowego stosowanego przez klika dotychczasowych wersji serwera Oracle Database: <strong>Delayed Block Cleanout<\/strong>. Mechanizm ten wi\u0105\u017ce si\u0119 z realizacj\u0105 operacji COMMIT (zatwierdzenia transakcji). Pami\u0119tamy, \u017ce zatwierdzenie transakcji powinno powodowa\u0107 zdj\u0119cie wszystkich za\u0142o\u017conych blokad na rekordach i tabelach (algorytm 2PL). Wiemy te\u017c, \u017ce informacje o blokadach i transakcjach posiadaj\u0105cych te blokady s\u0105 zapisywane w nag\u0142\u00f3wkach blok\u00f3w danych zawieraj\u0105cych rekordy b\u0119d\u0105ce przedmiotem blokady. To oznacza, \u017ce zdejmowanie blokad poci\u0105ga za sob\u0105 modyfikacje blok\u00f3w (mog\u0105 znajdowa\u0107 si\u0119 ju\u017c nawet poza Buffer Cache), a tym samym generowanie danych powt\u00f3rzenia (Redo). Aby zaoszcz\u0119dzi\u0107 na czasie wykonywania operacji COMMIT, serwer bazy danych \u201eformalnie\u201d zdejmuje wszystkie blokady transakcyjne, ale nie dokonuje stosownego wyczyszczenia nag\u0142\u00f3wk\u00f3w blok\u00f3w danych. Za takie czyszczenie (Block Cleanout) odpowiada najbli\u017csza operacja SQL, kt\u00f3ra odczytuje blok np. z dysku (statystyka &#8222;cleanout \u2013 number of ktugct calls&#8221;). Efektem Delayed Block Cleanout jest sprawniejsze wykonywanie operacji COMMIT ale jednocze\u015bnie pogorszenie wydajno\u015bci najbli\u017cszej operacji odczytuj\u0105cej bloki tabeli. Je\u015bli chcieliby\u015bmy unikn\u0105\u0107 negatywnych konsekwencji Delayed Block Cleanout, to po zatwierdzaniu szczeg\u00f3lnie d\u0142ugich transakcji nale\u017ca\u0142oby wykona\u0107 sztuczne zapytanie SELECT dokonuj\u0105ce pe\u0142nego odczytu zmodyfikowanej tabeli, a tym samym &#8222;sprz\u0105taj\u0105ce&#8221; bloki po transakcji.<\/p>\n<p><code>SQL&gt; connect hr<br \/>\nSQL&gt; select name, value from v$mystat natural join v$statname<br \/>\nwhere name in ('cleanout \u2013 number of ktugct calls', 'redo size','db block changes');<br \/>\nNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br \/>\n--------------------------------- ----------<br \/>\ndb block changes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br \/>\nredo size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br \/>\ncleanout - number of ktugct calls 0<br \/>\nSQL&gt; update test_dbc set id=id where mod(id,5)=0;<br \/>\n...<br \/>\nSQL&gt; commit;<br \/>\nSQL&gt; select name, value from v$mystat natural join v$statname<br \/>\nwhere name in ('cleanout \u2013 number of ktugct calls', 'redo size','db block changes');<br \/>\nNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br \/>\n--------------------------------- ----------<br \/>\ndb block changes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 445399<br \/>\nredo size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 67331540<br \/>\ncleanout - number of ktugct calls 0<br \/>\nSQL&gt; connect hr<br \/>\nSQL&gt; select name, value from v$mystat natural join v$statname<br \/>\nwhere name in ('cleanout \u2013 number of ktugct calls', 'redo size','db block changes');<br \/>\nNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br \/>\n--------------------------------- ----------<br \/>\ndb block changes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br \/>\nredo size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br \/>\ncleanout - number of ktugct calls 0<br \/>\nSQL&gt; select count(*) from test_dbc;<br \/>\n...<br \/>\nSQL&gt; select name, value from v$mystat natural join v$statname<br \/>\nwhere name in ('cleanout \u2013 number of ktugct calls', 'redo size','db block changes');<br \/>\nNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br \/>\n--------------------------------- ----------<br \/>\ndb block changes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10425<br \/>\nredo size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 750644<br \/>\ncleanout - number of ktugct calls 10425<br \/>\nSQL&gt; select count(*) from test_dbc;<br \/>\n...<br \/>\nSQL&gt; select name, value from v$mystat natural join v$statname<br \/>\nwhere name in ('cleanout \u2013 number of ktugct calls', 'redo size','db block changes');<br \/>\nNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VALUE<br \/>\n--------------------------------- ----------<br \/>\ndb block changes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10425<br \/>\nredo size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 750644<br \/>\ncleanout - number of ktugct calls 10425<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Przyjrzyjmy si\u0119 ciekawemu zjawisku, kt\u00f3re przejawia si\u0119 tym, \u017ce czasami wykonanie zapytania SELECT powoduje modyfikacje blok\u00f3w dyskowych oraz zapisy danych powt\u00f3rzenia (Redo). W konsekwencji , wydajno\u015b\u0107 polecenia SELECT staje si\u0119 nieakceptowalna. W poni\u017cszym eksperymencie pos\u0142uguj\u0119 si\u0119 tabel\u0105 zawieraj\u0105c\u0105 milion rekord\u00f3w, zajmuj\u0105ca 130MB. W pierwszym kroku, na tabeli wykonuj\u0119 polecenie UPDATE, kt\u00f3re modyfikuje co pi\u0105ty rekord. <a href=\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\" rel=\"nofollow\"><span class=\"sr-only\">Read more about Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!<\/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":[8],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.2.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout! - Explain IT<\/title>\n<meta name=\"description\" content=\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!\" \/>\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\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout! - Explain IT\" \/>\n<meta property=\"og:description\" content=\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\" \/>\n<meta property=\"og:site_name\" content=\"Explain IT\" \/>\n<meta property=\"article:published_time\" content=\"2013-01-30T12:42:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-01-11T07:52:23+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=\"5 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\"},\"author\":{\"name\":\"Maciej Zakrzewicz\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219\"},\"headline\":\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!\",\"datePublished\":\"2013-01-30T12:42:09+00:00\",\"dateModified\":\"2019-01-11T07:52:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\"},\"wordCount\":380,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#organization\"},\"keywords\":[\"Buffer Cache\"],\"articleSection\":[\"Oracle Database\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\",\"url\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\",\"name\":\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout! - Explain IT\",\"isPartOf\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/#website\"},\"datePublished\":\"2013-01-30T12:42:09+00:00\",\"dateModified\":\"2019-01-11T07:52:23+00:00\",\"description\":\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!\",\"breadcrumb\":{\"@id\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/explainit.pl\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!\"}]},{\"@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 polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout! - Explain IT","description":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!","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\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/","og_locale":"pl_PL","og_type":"article","og_title":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout! - Explain IT","og_description":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!","og_url":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/","og_site_name":"Explain IT","article_published_time":"2013-01-30T12:42:09+00:00","article_modified_time":"2019-01-11T07:52:23+00:00","author":"Maciej Zakrzewicz","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Maciej Zakrzewicz","Szacowany czas czytania":"5 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#article","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/"},"author":{"name":"Maciej Zakrzewicz","@id":"https:\/\/explainit.pl\/wordpress\/#\/schema\/person\/740773131bc169a2dc9c0e5e07476219"},"headline":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!","datePublished":"2013-01-30T12:42:09+00:00","dateModified":"2019-01-11T07:52:23+00:00","mainEntityOfPage":{"@id":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/"},"wordCount":380,"commentCount":1,"publisher":{"@id":"https:\/\/explainit.pl\/wordpress\/#organization"},"keywords":["Buffer Cache"],"articleSection":["Oracle Database"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/","url":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/","name":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout! - Explain IT","isPartOf":{"@id":"https:\/\/explainit.pl\/wordpress\/#website"},"datePublished":"2013-01-30T12:42:09+00:00","dateModified":"2019-01-11T07:52:23+00:00","description":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!","breadcrumb":{"@id":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/explainit.pl\/wordpress\/2013\/01\/30\/dlaczego-select-powoduje-zapisy-dyskowe-delayed-block-cleanout\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/explainit.pl\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Dlaczego polecenie SELECT powoduje zapisy dyskowe? Delayed Block Cleanout!"}]},{"@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\/104"}],"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=104"}],"version-history":[{"count":5,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"predecessor-version":[{"id":682,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/posts\/104\/revisions\/682"}],"wp:attachment":[{"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/explainit.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}