{"id":1435,"date":"2014-03-31T17:24:00","date_gmt":"2014-03-31T16:24:00","guid":{"rendered":"http:\/\/soci.hu\/blog\/?p=1435"},"modified":"2014-03-31T17:24:00","modified_gmt":"2014-03-31T16:24:00","slug":"random-ertekek-clustered-index-vinyo-tengelytores","status":"publish","type":"post","link":"https:\/\/soci.hu\/blog\/index.php\/2014\/03\/31\/random-ertekek-clustered-index-vinyo-tengelytores\/","title":{"rendered":"Random \u00e9rt\u00e9kek + Clustered index = viny\u00f3 tengelyt\u00f6r\u00e9s"},"content":{"rendered":"<p>Az ut\u00f3bbi h\u00f3napban k\u00e9t munk\u00e1mban is random kulcsok okoztak kalamajk\u00e1t az SQL Serverek \u00e9s a megrendel\u0151k \u00e9let\u00e9ben. Az egyik esetben egy adatt\u00e1rh\u00e1z bet\u00f6lt\u00e9s\u00e9t lass\u00edtotta le a NEWID()-val gener\u00e1lt v\u00e9letlensz\u00e1m, a m\u00e1sikban Java-ban gener\u00e1ltak v\u00e9letlen kulcsokat, amit\u0151l az \u00f6sszes adatot \u00e9rint\u0151 m\u0171velet belassult.<br \/>\nAz els\u0151ben annyira, hogy a norm\u00e1l esetben 250000 sor\/sec-es bulk insert lelassult p\u00e1r 10 sor\/secre, \u00e9s a merevlemezek v\u00e1laszideje felment p\u00e1r m\u00e1sodpercre (norm\u00e1l esetben ez p\u00e1r millisec).<br \/>\nA t\u00e1bl\u00e1k annyira fragment\u00e1ltak voltak, hogy a nagyobbakon fragment\u00e1lts\u00e1g m\u00e9rt\u00e9ke 99,7% volt, 10 f\u00f6l\u00f6tt m\u00e1r sim\u00e1n defragment\u00e1lni szoktunk.<br \/>\nNonclustered indexek eset\u00e9n is \u00e9rezteti a hat\u00e1s\u00e1t a guid, de nem annyira agressz\u00edven, mint a clu index eset\u00e9n.<br \/>\nB\u00e1rmennyire is k\u00e9nyelmes az a t\u00e9ny, hogy guidokat adatb\u00e1zison k\u00edv\u00fcl is lehet gener\u00e1lni, meg kell gondolni a haszn\u00e1latukat. Az identity nem OR mapper bar\u00e1t, mivel minden egyes sor besz\u00far\u00e1sa ut\u00e1n vissza kell olvasni a gener\u00e1lt identity \u00e9rt\u00e9ket, azaz minden egyes insert egy round trip lesz. J\u00f3 megold\u00e1s lehet a HILO primary key gener\u00e1l\u00e1s, k\u00f6l\u00f6n\u00f6sen SEQUENCE alapon, de ezt meg nem t\u00e1mogatja minden OR mapper (EF se, itt van egyf\u00e9le <a href=\"http:\/\/joseoncode.com\/2011\/03\/23\/hilo-for-entityframework\/\">k\u00fcls\u0151 implement\u00e1ci\u00f3<\/a> hozz\u00e1).<br \/>\nNem egyszer\u0171 j\u00f3 kulcsgener\u00e1tort tal\u00e1lni.<\/p>\n<p><a href=\"http:\/\/soci.hu\/tddcourse.aspx\">Test Driven Development tanfolyam<\/a> &#8211; fogynak a helyek, jelentkezzen, aki m\u00e9g be szeretne bef\u00e9rni m\u00e1jusban.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Az ut\u00f3bbi h\u00f3napban k\u00e9t munk\u00e1mban is random kulcsok okoztak kalamajk\u00e1t az SQL Serverek \u00e9s a megrendel\u0151k \u00e9let\u00e9ben. Az egyik esetben egy adatt\u00e1rh\u00e1z&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,4,30],"tags":[],"class_list":["post-1435","post","type-post","status-publish","format-standard","hentry","category-net","category-szakmai-elet","category-sql-server"],"_links":{"self":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=1435"}],"version-history":[{"count":1,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1435\/revisions"}],"predecessor-version":[{"id":1436,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/1435\/revisions\/1436"}],"wp:attachment":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=1435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=1435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=1435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}