{"id":83337,"date":"2020-05-30T07:42:48","date_gmt":"2020-05-30T05:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh"},"modified":"2020-05-30T07:42:48","modified_gmt":"2020-05-30T05:42:48","slug":"k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","title":{"rendered":"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve. Jam Vladislav Rodin. Aktualisht, un\u00eb jam drejtues i kursit \"Arkitekt i ngarkesave t\u00eb larta\" n\u00eb OTUS, si dhe jap m\u00ebsime n\u00eb kurset q\u00eb i kushtohen arkitektur\u00ebs s\u00eb softuerit.<br \/>\n<\/i><br \/>\n<b><i>P\u00ebrve\u00e7 m\u00ebsimdh\u00ebnies, ashtu si\u00e7 e keni v\u00ebn\u00eb re, un\u00eb merrem me shkruajtjen e materialeve origjinale p\u00ebr blogun e OTUS n\u00eb Habr dhe artikulli i sot\u00ebm do ta kushtoj fillimit t\u00eb kursit <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">\u00abPostgreSQL\u00bb<\/a><\/noindex>, p\u00ebr t\u00eb cilin aktualisht \u00ebsht\u00eb hapur regjistrimi.<\/i><\/b><\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/acfb562f4e72d657c09f5ce00acdf80b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Hyrje<\/h2>\n<p>\nN\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/494652\/\">her\u00ebn e kaluar<\/a><\/noindex> Diskutuam se transaksionet n\u00eb bazat e t\u00eb dh\u00ebnave sh\u00ebrbejn\u00eb p\u00ebr zgjidhjen e dy problemeve: sigurimin e q\u00ebndrueshm\u00ebris\u00eb dhe aksesit n\u00eb t\u00eb dh\u00ebna n\u00eb nj\u00eb mjedis konkurrues. P\u00ebr t\u00eb realizuar plot\u00ebsisht k\u00ebto detyra, transaksioni duhet t\u00eb ket\u00eb pronat ACID. Sot do t\u00eb flasim n\u00eb detaje p\u00ebr shkronj\u00ebn <b>I (izolim)<\/b> n\u00eb k\u00ebt\u00eb akronim.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Izolimi<\/h2>\n<p>\nIzolimi zgjidh problemin e aksesit n\u00eb t\u00eb dh\u00ebna n\u00eb nj\u00eb mjedis konkurrues duke ofruar mbrojtje kund\u00ebr race condition. Idealisht, izolimi do t\u00eb thot\u00eb seri, pra nj\u00eb ve\u00e7ori q\u00eb garanton se rezultati i ekzekutimit t\u00eb transaksioneve paralele \u00ebsht\u00eb i nj\u00ebjt\u00eb si n\u00ebse ato do t\u00eb ishin ekzekutuar nj\u00ebra pas tjetr\u00ebs. Problemi kryesor i k\u00ebsaj ve\u00e7orie \u00ebsht\u00eb se \u00ebsht\u00eb shum\u00eb e v\u00ebshtir\u00eb p\u00ebr t'u siguruar teknologjikisht dhe si pasoj\u00eb ka nj\u00eb ndikim t\u00eb r\u00ebnd\u00ebsish\u00ebm n\u00eb performanc\u00ebn e sistemit. Prandaj, shpesh, izolimi dob\u00ebsohet duke pranuar rreziqe p\u00ebr shfaqjen e disave anomali, p\u00ebr t\u00eb cilat do t\u00eb flasim m\u00eb posht\u00eb. Mund\u00ebsia e shfaqjes s\u00eb disave anomali p\u00ebrshkruan nivelin e izolimit t\u00eb transaksioneve.<\/p>\n<p>Anomalit\u00eb m\u00eb t\u00eb njohura jan\u00eb: leximi i ndotur, leximi jo p\u00ebrs\u00ebrit\u00ebs, leximi fantazm\u00eb, por n\u00eb t\u00eb v\u00ebrtet\u00eb ka edhe 5 t\u00eb tjera: shkrimi i ndotur, humbja e kursorit t\u00eb p\u00ebrdit\u00ebsimit, humbja e p\u00ebrdit\u00ebsimit, skema e leximit, skema e shkrimit.<\/p>\n<h2>Shkrimi i ndotur<\/h2>\n<p>\nThelbi i anomalis\u00eb \u00ebsht\u00eb se transaksionet mund t\u00eb ri-shkruajn\u00eb t\u00eb dh\u00ebna q\u00eb s\u2019jan\u00eb t\u00eb angazhuara.<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/416d14593449b8b10d46c77804af772a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKjo anomali \u00ebsht\u00eb e rrezikshme jo vet\u00ebm p\u00ebr shkak se t\u00eb dh\u00ebnat mund t\u00eb konfliktin pas angazhimit t\u00eb t\u00eb dy transaksioneve (si\u00e7 e tregon figura), por edhe sepse bie n\u00eb shkelje t\u00eb atomaritetit: pasi ne lejojm\u00eb t\u00eb ri-shkruajm\u00eb t\u00eb dh\u00ebna q\u00eb s\u2019jan\u00eb t\u00eb angazhuara, nuk \u00ebsht\u00eb e qart\u00eb se si t\u00eb kthejm\u00eb nj\u00eb transaksion, pa prekur nj\u00eb t\u00eb till\u00eb tjet\u00ebr. <\/p>\n<p>Kjo anomali trajtohet mjaft thjesht\u00eb: vendosim nj\u00eb bllokim p\u00ebr shkrim para fillimit t\u00eb shkrimit, duke ndaluar transaksionet e tjera t\u00eb ndryshojn\u00eb shkrimin derisa bllokimi t\u00eb hiqet. <\/p>\n<h2>Leximi i ndotur<\/h2>\n<p>\nLeximi i ndotur do t\u00eb thot\u00eb leximi i t\u00eb dh\u00ebnave q\u00eb s\u2019jan\u00eb t\u00eb angazhuara. <\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/133a48a7a1b91a085e3ade73de517e3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProblemet shfaqen kur \u00ebsht\u00eb e nevojshme t\u00eb kryhen disa veprime ose t\u00eb merren vendime mbi nj\u00eb most\u00ebr.<\/p>\n<p>P\u00ebr t\u00eb korrigjuar anomalin\u00eb mund t\u00eb vendoset nj\u00eb bllokim n\u00eb lexim, por kjo do t\u00eb ket\u00eb nj\u00eb ndikim t\u00eb r\u00ebnd\u00ebsish\u00ebm n\u00eb performanc\u00eb. \u00cbsht\u00eb shum\u00eb m\u00eb e leht\u00eb t\u00eb thuash se p\u00ebr rollback-in e transaksionit, gjendja fillestare e t\u00eb dh\u00ebnave (para fillimit t\u00eb shkrimit) duhet t\u00eb ruhet n\u00eb sistem. Pse t\u00eb mos e lexosh nga aty? Kjo \u00ebsht\u00eb mjaft e lir\u00eb, k\u00ebshtu q\u00eb shumica e bazave t\u00eb t\u00eb dh\u00ebnave e largojn\u00eb dirty read si parametrin e paracaktuar. <\/p>\n<h2>Koh\u00eb e humbur<\/h2>\n<p>\nKoh\u00eb e humbur do t\u00eb thot\u00eb humbje e p\u00ebrdit\u00ebsimeve, dhe p\u00ebrkthimi pasqyron sakt\u00ebsisht thelbin e problemit:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/bed92d27aa9ad2330de4a5fa37991bf6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFaktikisht, rezultati i transaksionit T2 u anulua. Kjo situat\u00eb mund t\u00eb rregullohet me bllokime t\u00eb qarta ose jo t\u00eb qarta t\u00eb t\u00eb dh\u00ebnave. K\u00ebshtu q\u00eb ne ose thjesht kryejm\u00eb p\u00ebrdit\u00ebsimin e t\u00eb dh\u00ebnave, dhe at\u00ebher\u00eb lind nj\u00eb bllokim i paqart\u00eb, ose ne kryejm\u00eb <b>select for update<\/b>, duke shkaktuar lindjen e nj\u00eb bllokimi p\u00ebr lexim dhe p\u00ebr shkruar. Vini re se kjo operacion \u00ebsht\u00eb mjaft e rrezikshme: me leximin ton\u00eb \"t\u00eb pafajsh\u00ebm\", ne bllokojm\u00eb lexime t\u00eb tjera. Disa baza ofrojn\u00eb m\u00eb t\u00eb sigurt <b>select for share<\/b>, q\u00eb lejon leximin e t\u00eb dh\u00ebnave, por nuk lejon ndryshimin e tyre. <\/p>\n<h2>Koh\u00eb e humbur e kursorit<\/h2>\n<p>\nP\u00ebr kontroll m\u00eb t\u00eb holl\u00eb, bazat mund t\u00eb ofrojn\u00eb mjete t\u00eb tjera, p\u00ebr shembull, kursorin. Kursor \u00ebsht\u00eb nj\u00eb struktur\u00eb q\u00eb p\u00ebrmban nj\u00eb set rreshtash dhe lejon t\u00eb iteroj\u00eb mbi to. <b>declare cursor_name for select_statement<\/b>. P\u00ebrmbajtja e kursorit p\u00ebrshkruhet nga select. <\/p>\n<p>P\u00ebr \u00e7far\u00eb \u00ebsht\u00eb kursori? Problemi \u00ebsht\u00eb se disa baza t\u00eb t\u00eb dh\u00ebnave ofrojn\u00eb bllokim n\u00eb t\u00eb gjitha sh\u00ebnimet e zgjedhura nga select (stabiliteti i leximit), ose vet\u00ebm n\u00eb at\u00eb sh\u00ebnim ku ndodhet aktualisht kursori (stabiliteti i kursorit). N\u00eb rastin e stabilitetit t\u00eb kursorit zbatohet nj\u00eb bllokim i shkurt\u00ebr, q\u00eb lejon t\u00eb reduktohet numri i bllokimeve n\u00eb rastin kur po iteron n\u00eb nj\u00eb most\u00ebr t\u00eb madhe t\u00eb t\u00eb dh\u00ebnave. Prandaj, anomalia lost update \u00ebsht\u00eb e ve\u00e7uar p\u00ebr kursorin.<\/p>\n<h2>Leximi i pa p\u00ebrs\u00ebritsh\u00ebm<\/h2>\n<p>\nLeximi i pa p\u00ebrs\u00ebritsh\u00ebm n\u00ebnkupton se gjat\u00eb ekzekutimit t\u00eb transaksionit ton\u00eb, 2 lexime t\u00eb nj\u00ebjta rreshti do t\u00eb \u00e7ojn\u00eb n\u00eb rezultate t\u00eb ndryshme, sepse nj\u00eb transaksion tjet\u00ebr nd\u00ebrhyri midis k\u00ebtyre dy leximeve, ndryshoi t\u00eb dh\u00ebnat tona dhe u mir\u00ebprit. <\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/7954d2fbcbda3904240eae39ba5e9bbc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPse \u00ebsht\u00eb kjo nj\u00eb problem n\u00eb t\u00eb v\u00ebrtet\u00eb? Imagjinoni se q\u00ebllimi i transaksionit T2 n\u00eb imazh \u00ebsht\u00eb t\u00eb zgjedh\u00eb t\u00eb gjitha produktet, \u00e7mimi i t\u00eb cilave \u00ebsht\u00eb m\u00eb i vog\u00ebl se 150 nj\u00ebsi monetare. Disa nj\u00ebsi t\u00eb tjera e p\u00ebrdit\u00ebsuan \u00e7mimin n\u00eb 200 nj\u00ebsi monetare. N\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, filtri i vendosur nuk funksionoi.<\/p>\n<p>K\u00ebto anomali ndalojn\u00eb t\u00eb ndodhin kur shtohen bllokimet dyp\u00ebrfash\u00ebshe ose kur p\u00ebrdoret mekanizmi MVCC, p\u00ebr t\u00eb cilin do t\u00eb doja t\u00eb flisja ve\u00e7mas. <\/p>\n<h2>Leximi fantazm\u00eb<\/h2>\n<p>\nLeximi fantazm\u00eb quhet lexim i t\u00eb dh\u00ebnave q\u00eb jan\u00eb shtuar nga nj\u00eb transaksion tjet\u00ebr. <\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/4f5e62205bac4b9422f6631f171ca11d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi nj\u00eb shembull, mund t\u00eb v\u00ebrejm\u00eb p\u00ebrzgjedhjen e gabuar t\u00eb produktit m\u00eb t\u00eb lir\u00eb kur ndodh kjo anomali. <\/p>\n<p>T\u00eb heq\u00ebsh dor\u00eb nga leximet fantazm\u00eb \u00ebsht\u00eb mjaft e v\u00ebshtir\u00eb. Nj\u00eb bllokim i zakonsh\u00ebm nuk \u00ebsht\u00eb i mjaftuesh\u00ebm, pasi nuk mund t\u00eb bllokojm\u00eb at\u00eb q\u00eb nuk ekziston akoma. Sistemet 2PL p\u00ebrdorin bllokim predikativ, nd\u00ebrsa sistemet MVCC planifikuesi i transaksioneve anulon transaksionet q\u00eb mund t\u00eb d\u00ebmtohen nga shtimi. Si mekanizmi i par\u00eb ashtu edhe i dyti jan\u00eb mjaft t\u00eb r\u00ebnd\u00eb.<\/p>\n<h2>Ekipi i leximit<\/h2>\n<p>\nEkipi i leximit ndodh kur punojm\u00eb me disa tabela, p\u00ebrmbajtja e t\u00eb cilave duhet t\u00eb ndryshoj\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb koordinuar. <\/p>\n<p>Supozoni q\u00eb ka tabela q\u00eb p\u00ebrfaq\u00ebsojn\u00eb postimet dhe metainformacionin e tyre:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/e15440e44c41c0ac15d2c3349d1fae4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNj\u00eb transaksion lexon nga tabelat, tjetra i ndryshon ato:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/b89da5ae2d926ed0061cb90917d8a1ef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi rezultat i ekzekutimit t\u00eb transaksionit T1, n\u00eb postimin titulli = Mir\u00eb, dhe updated_by = T2, q\u00eb \u00ebsht\u00eb nj\u00eb mosmarr\u00ebveshje e caktuar. <\/p>\n<p>N\u00eb fakt, ky \u00ebsht\u00eb nj\u00eb lexim i p\u00ebrs\u00ebritur, por midis disa tabelave.<\/p>\n<p>P\u00ebr ta rregulluar, T1 mund t\u00eb vendos\u00eb bllokime n\u00eb t\u00eb gjitha rreshtat q\u00eb do t\u00eb lexoj\u00eb, gj\u00eb q\u00eb do t'i ndaloj\u00eb transaksionet T2 t\u00eb ndryshojn\u00eb informacionin. N\u00eb rastin e MVCC, transaksioni T2 do t\u00eb anulohet. Mbrojtja nga kjo anomali mund t\u00eb b\u00ebhet e r\u00ebnd\u00ebsishme n\u00ebse p\u00ebrdorim kursore. <\/p>\n<h2>Ekipi i shkruar<\/h2>\n<p>\nKjo anomali gjithashtu \u00ebsht\u00eb m\u00eb e leht\u00eb p\u00ebr t'u shpjeguar me nj\u00eb shembull: supozoni se n\u00eb sistemin ton\u00eb t\u00eb pakt\u00ebn nj\u00eb doktor duhet t\u00eb jet\u00eb n\u00eb kujdestari, por t\u00eb dy doktor\u00ebt vendos\u00ebn t\u00eb anulojn\u00eb kujdestarin\u00eb e tyre:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/7c6e4410224c3fcc9c564369535644e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/8723c2dfe3e4b97ded601da2f89a77b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAnomalia \u00e7oi n\u00eb at\u00eb q\u00eb asnj\u00eb nga doktor\u00ebt nuk do t\u00eb dilte n\u00eb kujdestari. Pse ndodhi kjo? Sepse transaksioni kontrolloi nj\u00eb kusht q\u00eb mund t\u00eb vihet n\u00eb rrezik nga nj\u00eb transaksion tjet\u00ebr, dhe p\u00ebr shkak t\u00eb izolimit ne nuk e pam\u00eb k\u00ebt\u00eb ndryshim.<\/p>\n<p>Ky \u00ebsht\u00eb i nj\u00ebjti non-repeatable read. Si nj\u00eb opsion, select mund t\u00eb vendos\u00eb bllokime n\u00eb k\u00ebto sh\u00ebnime.<\/p>\n<p>Write skew dhe read skew jan\u00eb kombinime t\u00eb anomali\u00ebve t\u00eb m\u00ebparshme. Mund t\u00eb shqyrtojm\u00eb write skew, i cili n\u00eb thelb \u00ebsht\u00eb phantom read. Le t\u00eb shohim nj\u00eb tabel\u00eb, ku jan\u00eb emrat e punonj\u00ebsve, paga e tyre dhe projekti ku ata po punojn\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/2953d6148d07ded9e1a3d67428b14e67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"\u00c7far\u00eb mund t\u00eb ndodhi p\u00ebr shkak t\u00eb dob\u00ebsimit t\u00eb nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb bazat e t\u00eb dh\u00ebnave\" src=\"\/wp-content\/uploads\/2020\/05\/f77800e316708944aa32a9095ae6b132.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb fund, ne marrim k\u00ebt\u00eb pamje: \u00e7do menaxher mendonte se ndryshimi i tij nuk do t\u00eb \u00e7onte n\u00eb tejkalimin e buxhetit, prandaj ata b\u00ebn\u00eb ndryshime n\u00eb staf, q\u00eb n\u00eb total rezultuan n\u00eb tejkalimin e shpenzimeve. <\/p>\n<p>Shkaku i shfaqjes s\u00eb problemit \u00ebsht\u00eb i nj\u00ebjt\u00eb si n\u00eb leximin fantom. <\/p>\n<h2>P\u00ebrfundimet<\/h2>\n<p>\nUshtrimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb databaz\u00eb \u00ebsht\u00eb nj\u00eb kompromis midis siguris\u00eb dhe performanc\u00ebs, dhe zgjedhja e k\u00ebtij niveli duhet t\u00eb b\u00ebhet duke marr\u00eb parasysh rreziqet potenciale p\u00ebr biznesin n\u00eb rast t\u00eb shfaqjes s\u00eb anomali\u00ebve t\u00eb ndryshme.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/fyWh\/\">M\u00ebso m\u00eb shum\u00eb p\u00ebr kursin.<br \/>\n<\/a><\/noindex><\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/501294\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u044f\u0432\u043b\u044f\u044e\u0441\u044c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043a\u0443\u0440\u0441\u0430 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u00bb \u0432 OTUS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u041f\u041e. \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u043d\u0438\u044f, \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u043b\u044f \u0431\u043b\u043e\u0433\u0430 OTUS \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u044e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0438\u0442\u044c \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-30T05:42:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47\u00c7far\u00eb mund t\u00eb sjell\u00eb dob\u00ebsimi i nivelit t\u00eb izolimit t\u00eb transaksioneve n\u00eb databaza | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve. K\u00ebtu \u00ebsht\u00eb Vladislav Rodin.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a \u0447\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0432 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0412\u043b\u0430\u0434\u0438\u0441\u043b\u0430\u0432 \u0420\u043e\u0434\u0438\u043d.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/k-chemu-mozhet-privesti-oslablenie-urovnya-izolyaczii-tranzakczij-v-bazah-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-30T05:42:48+00:00","article:modified_time":"2020-05-30T05:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83337","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:20:28","updated":"2022-09-28 14:57:58","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/83337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=83337"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/83337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/83338"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=83337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=83337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=83337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}