Кућа Базе података Индексно лудило: како избећи хаос базе података

Индексно лудило: како избећи хаос базе података

Преглед садржаја:

Anonim

Аутор особља Тецхопедиа, 5. октобра 2016

Одлазак: Домаћин Ериц Каванагх разговара о индексирању база података с др. Робин Блоор-ом, Дез Бланцхфиелд-ом и Берте Сцалзо-ом ИДЕРА-е.

Тренутно нисте пријављени. Пријавите се или пријавите да бисте видели видео.

Тецхопедиа Цонтент Партнер

Особље Тецхопедиа повезано је са Блоор Гроуп и с њима се може контактирати користећи опције са десне стране. За информације о томе како радимо са индустријским партнерима кликните овде.
  • Профил
  • Веб сајт

Ериц Каванагх: Даме и господо, здраво, и добродошли поново. Сриједа је, у четири сата источно, и они од вас који знате програм, знате шта то значи, време је за још једну епизоду Хот Тецхнологиес. Да заиста. Моје име је Ериц Каванагх, бит ћу вам модератор данашње сесије: "Индекс лудила: Како избјећи хаос базе података." Или као што сам то поменуо у последњој експлозији е-поште која је излазила из „бављења базом података.“ Врући термин ових дана, „свађа“. Сви то раде. Доиста је слајд о вашем. И доста о мени.

Дакле, серија Хот Тецхнологи је заиста дизајнирана тако да дефинише одређени простор, за разлику од Савјета за брифинге, који је само брифинг уживо аналитичара, за Хот Тецх добијамо два аналитичара. Данас ће то бити наш властити доктор Робин Блоор и наш научник Дез Бланцхфиелд. А ми говоримо о теми за коју мислим да је заиста прилично емблематична за оно што се данас догађа на пијаци.

Суштина је да се ових дана налазимо у свету сложености. Заиста, ако мислите уназад петнаест или двадесет година, то је био тада сасвим другачији свет, посебно у погледу технологије база података. Раније су базе података биле прилично једноставне. Било их је само шачица; већина их је била релацијска. Сада имамо читав низ технологија база података. Буквално има много опција на табели за све који желе да направе апликацију или ураде нешто са подацима. Све се мења и то утиче на људе који покушавају да управљају овим системима. Данас ћемо разговарати са Бертом Сцалзо, који је прави стручњак на том пољу; он је виши менаџер производа за ИДЕРА, о томе шта можете учинити да бисте добили одговор на све те податке. С тим ћу га предати доктору Робину Блоору да га однесе. Робин, под је твој.

Робин Блоор: У реду, хвала на уводу. Мислим да - јер је то ствар с двије руке, мислим да бих само говорио о оптимизацији базе података као уводу у ову Хот Тецх емисију. Започео сам живот - у технологији и анализи - започео сам живот радећи то јер сам некада писао чланке о могућностима база података на ДЕЦ ВАКС платформи. Због тога су ме информисали тражиоци база података. А оно што ми се некако догађа је то зашто бисте имали базу података? Мислим, у те дане је огроман број људи користио да креира датотеке са кључним вредностима и користи оне да би имали својеврсно индексно погрешно индексирање како их ми зовемо, али да би створили неку врсту базе података, и знате, зашто бисте имали Још нешто?

А одговор на то, мислим да је Мицхаел Стонебракер дао најбољи одговор на то и рекао, "База података може знати више о томе где су подаци и како брже доћи до њих, него што било који програм икада може знати". И мислим да је то занимљиво; то је природа игре. Али у 19 - отприлике 1989. године отпочео сам у технолошкој анализи и знате, у том тренутку, базе података су биле врло једноставне, а релацијске базе података биле су супер једноставне. Имали су тако мало могућности, мислим, очигледно су могли да чувају податке, а ви бисте могли да направите сигурносну копију и имали су је, били су компатибилни са АЦИД-ом, али заиста су имали веома слабе оптимизаторе. У ствари, тешко би било тврдити да су уопште имали способност оптимизатора.

Касније су постајали све бољи и бољи, али, знате, када база података не функционише - као што изгледају ови клоканици на овај или онај начин који указују - може бити јако пуно разлога зашто то иде споро. И то ме доводи до тога: базе података имају много функција, али најважнија је оптимизација упита. Да то нису учинили, не бисте их користили. Ради се о брзом добијању информација, о томе да ли можете да то урадите када постоји пуно истодобних корисника, а то је тежак проблем. А кад заправо погледате, назовимо их зреле базе података, ако желите - али свакако Орацле, у нешто мањем обиму, Мицрософт СКЛ Сервер, свакако Терадата и ДБ2 - оптимизатори тих база података већ су деценијама током зграда. Знате, нису - неко се није сео - шест момака на двоје, годину дана, пројекат и само су покупили једнога заједно. Не функционира тако. Могућност оптимизације је постепено расла, а потребно је и велико повећање. У сваком случају, разговарајмо о позадини базе података. Па, сада постоји пуно тога што се говори о НоСКЛ бази података, а чак постоји и пуно ентузијазма за базу података графикона. И употреба СКЛ-а преко Хадоопа и сличне ствари. Али, истина је у томе да ако желите базу података тренутно, ако желите потпуно функционалну, способну за ОЛТП и велики промет упита, то је релациона база података или ништа.

Међу релацијским базама података, Орацле доминира у популарности. Мицрософт СКЛ Сервер, мислим да је други. Обоје су у могућности да се користе за ОЛТП и питају радно оптерећење, али заправо не можете да се извучете из мешања тих радних оптерећења. Потребни су вам различити инциденти за ОЛТП радна оптерећења и упита за оптерећења. Постоје алтернативе СКЛ-у и графу. Већина компанија се стандардизује на једној одређеној бази података, због чега - мислим да је након више деценија борбе са свим осталим играчима, Орацле постао најдоминантнији. Једноставно зато што су на крају продали корпоративне лиценце, па би компаније користиле алтернативне производе само у изузетним производима, Орацле их једноставно не би радио. А базе података су стратешке по томе што се и развијају. И знате да сам мало истражио ову презентацију, и то је нека врста - ја ћу на то доћи мало времена, али занимљиво је како се развијају, с обзиром на то да сагледам са позиције ДБА. То је оно што ја зовем невидљиви тренд. Моореов закон је изрезан. Отприлике је овако: Највећа база података је, и нове базе података, не постоји стара база података која би могла пробати пуно више података. Обично је то база података која се примењује на нови проблем. И заправо расту у погледу количине података. Отприлике на коцки Мооре-а закон. Дакле, Моореов закон је фактор десет пута сваких шест година. ВЛДБ имају тенденцију пораста фактора од хиљаду сваких шест година. 1991. и 1992. године велике базе података мере се у мегабајтима. '97 и '98, гигабајти. 2003, '4, терабајти. 2009, '10, почели сте да видите базе података петабајта. Мислим да је тренутно постојала једна или две егзбајтерске базе података, али највеће за које сам чуо је 200 петабајта на време, а знате, не добијање података у петабајтским базама података. Али, већину тога ће очигледно представљати нове велике веб 2.0 компаније, вероватно, и ви имате Фацебоок који иде у том смеру.

Али у сваком случају, ако то стварно погледате, очекујући да ће база података проћи кроз такву количинску ескалацију, тражи се много. И невероватно, изгледа да су до нивоа петабајта изгледали добро. Мислим, говорим о старијим производима, а не о нечему новом. Чини се да су изузетно добро прошли. Ако погледамо перформансе базе података, уска грла, то ме враћа у време када сам се заиста бринуо о њима и морао сам се бринути о њима. Знате да је то у основи квар хардвера. Постоји уска грла ЦПУ-а, вероватно постоје уска грла, вероватно постоје и уска грла диска. То може бити мрежа која вам изазива тугу, а такође можете добити и проблеме са закључавањем, у зависности од тога шта радите, али обично је то зато што програм не зна кога да позове закључавањем. Дакле, ако ћете прилагодити базу података, заправо је покушавате подесити тако да плеше између ових пет могућих уских грла као и што може. То није лако јер се количина меморије коју можете конфигурирати на било којем серверу драстично повећава. Тада су ЦПУ-и постали вишејезгрени, диск, па сад то можемо учинити, мислим, чак и на робним серверима, мислим да можете да радите стотине и стотине терабајта, четвртина петабајта, можда, чак и на робном серверу. Дакле, од свих ових ствари са којима можете да играте, мрежа наравно може да иде различитим брзинама, али углавном када радите са базама података, заиста желите да имате каблове од влакана између сервера и да ништа друго не ради на томе, посебно онуда.

Фактори перформанси базе података. Мислим, изостављам о чему се ради, јер знам да ће Дез о томе разговарати, али лош дизајн базе података значи базу података са лошим перформансама. Лош програмски дизајн може значити бацање врло глупог СКЛ-а на базу података, што ће трајати много дуже. Мешање паралелности и радног оптерећења, превише истодобности узроковат ће проблеме са уским грлом. Мешање радног оптерећења, када имате велике упите са врло малим, кратким, оштрим упитима, то узрокује проблеме. Постоји проблем са балансирањем оптерећења. Већина база података се о томе брине, али ако немате софистициран производ, онда знате, само додавање неколико сервера није све што радите ако заправо желите да повећате величину кластера. Заправо морате уравнотежити оптерећење прије него што постигнете оптималне перформансе. Морате да урадите планирање капацитета. Апсолутно. Нарочито сада у ове дане када се количина података драстично повећава него што је била навика за базе података. А ту су и проблеми са целим слојем података о томе како уносите податке, како премјештате податке. Ненадобно добијање података у базу података може бити проблем са перформансама касније, јер смо прешли од база података које раде у оперативном систему Виндовс, до двадесет четири према седам до тристо седамдесет и пет операција и нема прозора на којима можете успорити база података доле или је мало вероватно да ће их бити данас.

Проблем Орацле ДБА. О томе сам размишљао. Био сам у Орацле-овој ДБА с Орацле 7 и сећам се како то прилагодити. А ако сада стварно погледате на Орацле, то је начин, начин - то има начин, начин веће могућности. Има индексирање битмапа и сличне ствари, али заправо сам узео времена да погледам и видим колико се подешавања параметара тренутно налази у Орацле бази података. А постоји преко тристо педесет параметара подешавања и још стотину скривених параметара о којима стручњаци ДБА могу знати, али нормални Орацле ДБА не знају. А то значи да је подешавање ове врсте база података тешка ствар. То уопште није једноставна ствар. Мораш имати осећај за то, то мораш радити дуго, дуго и мораш тачно да знаш шта проблем мислиш да решујеш, јер подешавање почиње када перформансе постају слабе, али то можда није перформанс свега. Можда су битни извођење специфичних упита, а ви ћете то можда моћи да поправите фиксирањем одређених података и меморије или ћете морати да то поправите индексирањем, или ћете можда морати да почнете са партицијом на други начин. Пуно је ствари које можете учинити, поента је. Дакле, после тога то неће урадити у глави - ДБА требају алате. Сада ћу пренети Дезу који ће вам рећи о индексирању.

Ериц Каванагх: У реду Дез, однеси то.

Дез Бланцхфиелд: Хвала, Робин, и ја волим насловницу. Мислим да сте бацили заштитну ручицу тамо доле да дођем чак и из далека близу нечег узбудљивог. Али користио сам слику наше мале галаксије, као своје виђење онога у шта се претворио данашњи изазов за администраторе базе података, јер је ово ментална слика коју често дочаравам када уђем у окружење и више нисам у свету администрирања база података или дизајнирања база података на том нивоу више. Али, као и ви, Робин и ја смо имали много година да смо укључени у свет база података, било као администратор или програмер, или на крају архитекта, и тада смо схватили да могу боље ствари да зарадим. Али има осећај као да буљите у ову галаксију података, и тим више што смо данас, када смо, као што сте навели, прешли из мегабајта у петабајте и егзо-скали у врло кратком временском периоду., у великој шеми ствари. Али фраза коју имам на уму је да су индекси база података сада црна уметност и нису баш такве ствари које би обични смртници требало да се баве, за пословне апликације предузећа и врсту формулисања вас само су разговарали. Али, хтео сам да прођем кроз брзу прошлост оне врсте историје коју имам са светима база података и доведем у контекст где ћемо донети закључак, а затим ћемо данас проћи кроз неки материјал са нашим пријатељима на ИДЕРА, јер мислим да постоји много различитих размишљања о томе како навести подешавање перформанси базе података, а један од њих је бацање конзерви на ту ствар. За многе продавнице на које наилазим, они увек не стижу да изврше подешавање перформанси на нивоу базе података, а нарочито индексни слој док не прођу кроз тежи пут размишљања како могу да баце тунер на њега. .

Многи људи једноставно прихватају велики гвоздени приступ томе, и ја имам слику Фласх-а овде, јер ако сте икада гледали било који стари филм или сигурно најновију ТВ емисију са Фласх-ом, као у Фласх Гордон стари лик, а сада када га зову "Бљесак", тежи да иде врло, веома брзо и неизмерно му понестане енергије. А то се догађа када бацате велико жељезо на перформансе базе података. По мом искуству, у игри можете да поставите високе перформансе, напоран рад, можете да оптимизујете своје оперативне системе и подесите их на одређену тачку. Можете да осигурате да имате брзе мултицоре, мултитхреадинг процесоре како би апликација брже радила, на њу можете бацити пуно РАМ-а, можете имати позадине високих пропусних капацитета, можете прећи са хард дискова на кеширање чврстих дискова у чврсто стање и низ перформанси за складиштење. Чак и сада, људи бацају ствари попут фласх-а и НВМе-а у своје базе података, мислећи да ће ово време добити два пута. И увек имају неки добитак. Али, све се враћа истим основним проблемима у подешавању перформанси. Много мрежних веза са малим кашњењем, тако да кластери раде брзо. И о групирању базе података, тако да имате више од једне машине која ради сав посао. Али углавном се враћате истом проблему са перформансама, а то је читање података. Писање података је у већини случајева прилично линеарни изазов и уколико се не изврши правилно.

И тада имамо изазов у ​​данашњем свету: Нису све базе података створене једнаким. Постоје базе података и „базе података о цитату“. А када размишљамо о моторима база података, људи често размишљају о традиционалним, уобичајеним осумњиченима какав су били у свету СКЛ-а. Знате, имамо Орацле и Мицрософт СКЛ Сервер, а постоји неколико пара око њега у свету отвореног кода са МиСКЛ-ом, који је сада у власништву Орацле-а, али то је још увек опен соурце. И тада имамо не баш уобичајене осумњичене, НоСКЛ моторе, који и даље имају проблем око индексирања и управљања перформансама, и нећу улазити у њих детаљно, али све је већи број ових ствари се свакодневно појављују и изгледају као да се раде базе података са гледишта програмера и са становишта перформанси, али они су врло, врло различите животиње и имају своју малу нишу у свету која ће им направити било који перформансе у меморији или линеарна скала на диску. Али овако изгледа свет у свету база података. Ово је 2016. година, ово је верзија три карте мапе људи који израђују ову тренутну пејзажну мапу како изгледају базе података, и то је оно где - чак ни надљудски архитекта базе података или администратор базе података не би могли имати смисла од тога. Буквално стотине и стотине, и стотине различитих брендова, модела, произвођача база података, непромењиво СКЛ. А занимљиво је да се сви враћају истом изазову. Подешавање перформанси и перформанси око покретача базе података, а посебно начином индексирања података.

Дакле, само брзо покренимо индексирање база података, јер је то занимљива тема, а ви морате да детаљније уђете у њу са демо верзијом. Али, мислим да је прилично добро прихваћена и стандардна индустријска пракса да се подешавање перформанси базе података тамо где свет почиње и завршава све док је обезбеђивање података доступним у брзом и брзом формату. Али шта је индексирање база података? Ако размишљамо о индексирању у облику на који смо навикли као свакодневни људи, размислите о индексној страници у књизи. Ако желите да пронађете нешто у књизи - нарочито лансирање енциклопедије или нешто слично као референтни материјал неког облика - ако тражите нешто попут ове странице, где тражим ствари попут теме бране у енциклопедији. Желим да пронађем сваку референцу на бране, на слив воде и на велико загађење, уопштено израдјено од људи. Вратићу се позади, наћи ћу је на абецедном списку, поредани листи, од А до З, лево надесно, и наћи ћу Д. Пронаћи ћу реч "бране" и то могу да видим на на странама 16, 38, 41 постоји референца на њих, а онда могу прећи на те странице, могу скенирати очи и наћи ћу референцу на реч "брана". То је у основи исти концепт у бази података, али то је сада ракетна наука на више начина. Толико тога, да ефективно сваки администратор базе података које сам икада добро упознао сматра индексе јединим најкритичнијим алатом за подешавање перформанси у било којем свету база података, без обзира на то какво би могло бити искуство у вези с бацањем лименке на њега или какав год да је случај.

Када генерално говоримо о индексирању база података, постоји низ уобичајених приступа. И што сложенији индекси базе података постају, сложенији је приступ индексирању података. Али у суштини када размишљате о индексирању података - замислите да имамо датотеку која има списак имена; не могу да буду сортирани по абецедном реду. Замислимо да их има двадесет. Ако ћемо сортирати - ако ћемо тражити податке на тој листи, од врха до дна, и рецимо да је то листа имена. Ако изаберем случајно име и почнем да се крећем према доњој листи, од врха до дна, у линеарном формату и то је неуредјена листа, постоје два критеријума о којима мислим као своје просечно време претраживања и моје максимално време тражења - и У другој линији сам написао погрешку, требало би да буде „максимално време претраге“, жао ми је - али моје просечно време претраживања је у суштини Н плус једно, подељено са два, и то је у просеку, за то ми је потребно педесет процената времена да скенирате од врха листе, до дна листе да бисте пронашли било коју случајну ствар на тој листи. И други ред тамо, под линеарним, требало би да буде „максимално време претраге“. Али максимално време претраге је у основи број предмета, а то је да ако имам списак од двадесет ствари, највише времена ми може одузети тражити нешто у тој бази података значи ићи од врха до дна, што је рецимо 20 ставки у овом поједностављеном примеру. И то је врло спор процес и стварно нема начина да се то подешава. Затим постоје друге врсте начина узимања тих података и креирања индекса, што је заправо кратка листа показатеља на то где су стварни подаци, као што су бинарни, Б-стабло, битмап, хешинг, кластерирани и не-груписани, а затим постоје различите врсте података као што су просторни, филтрирани, КСМЛ и пуни текст.

Бинарни је формат који се веома често користи за ствари у којима се подаци предају њему. Б-стабло је вероватно најчешћи појединачно у општем смислу, историјски, по томе што је то уобичајен начин структурирања индекса у било који облик података и омогућава да се логерима, селекцијама, уметањем и брисањем релативно лако крећу показивачи око референца на показиваче, тачке. Постоје и други типови, попут битне слике, код којих се типови података тичу ако имамо неки асортиман неког облика. Хасхинг делује врло добро за велике предмете, посебно блогове и слике. И можете видети да постоји низ различитих врста научних приступа, математичких приступа индексирању података. За обичне смртнике они су занимљив изазов о којем ће се разговарати на овом нивоу. Када о томе говорите на нивоу перформанси за администратора базе података, они заиста постају ракетни научници и људи имају дипломе у њима, а ја знам да је то сигурно учинио и доктор Робин Блоор, и написао књиге о томе за ИБМ и других великих брендова у последњих неколико деценија. И тако је, по мом мишљењу, да смо заправо прошли неко време у коме бих лично могао да седнем испред система и могао бих да га раздвојим и покажем тачно тамо где су проблеми са перформансама били у командној линији или на алату за покретање графичког корисничког интерфејса, и почните да копате по подацима и кажем вам где су се налазили, и уградите индексе, подиндексе или примарне и секундарне индексе у то података и почните да их користите за проналажење ствари. Али кад размишљате о том пејзажу, показао сам вам, где имамо стотине и стотине марки, марки, модела и произвођача, као и врсте база података, сада смо добро и заиста прошли тамо где човек може да направи осећај типова мотора на бази података које имамо. Нарочито, чак и ако се вратимо на сличности Орацле-а, преовлађујући брендови ових дана на релацијским платформама база података.

Број база података са којима морају да се баве било са власничком платформом попут ЕРП-а или ХР-а или финансијског система, или да ли су из различитих разлога платформа заснована на кући, број база података и табела база података и записа које завршимо бавити се астрономским и физички то не можете учинити руком. И сада смо имали додатну компликацију, где би једном за време вашег сервера базе података могао седети испод вашег стола. Знате, као мали клинац након школе, ишао сам и радио на софтверу за базе података на, првобитно, Аппле ИИес-у, а затим и на системима заснованим на ДОС рачунару, попут дБасе ИИ, дБасе ИИИ, прошао је кроз доба маинфрамес-а и распон, па чак и ВАКС-ове и ПДП-ове и датотеку дневника. И слично Саберу, а затим и кад се појаве неке од СКЛ база података. Али ових дана када размишљамо о моторима база података, они изгледају као доњи леви угао. Сервер базе података више није само једна машина која сједи на поду испод стола; то су стотине машина које покрећу копије мотора базе података и кластера, и они скалирају до стотине и стотине терабајта података, ако не и петабајта података, а то је хиљаде терабајта. Чак и до крајности, као што је доктор Робин Блоор споменуо, да неки конкретни случајеви употребе - авиокомпаније, посебно владине агенције - могу доћи до прекомерних бараба. Они су и даље прилично ниша-и, али стотине терабајта и чак десетине петабајта више нису необичне, посебно од дотцом-овог бума до сада, као што називамо веб 2.0 компанијама, као што су Фацебоок, Гоогле, Иахоо и тако даље.

Такође имамо компликацију сада када ствари прелазе на спољну службу. Имамо инфраструктурну платформу и софтвер као сервисни приступ који пружа инфраструктуру. А посебно услугу платформи на којој не можемо само да купимо као што је Орацле и њихове цлоуд платформе, базе података и сервери. И тако нам ово омогућава врло брзи развој апликације и једноставно повезујемо базу података на сервере. Не морамо размишљати о томе шта се налази испод хаубе. Лоша страна је та што често не размишљамо о томе како дизајнирати и имплементирати базу података назад, све док не почне повређивати и перформансе не постану проблем, а онда на крају морамо потражити прави алат за дијагнозу зашто наша база података боли и где су питања о перформансама. И непромењиво то враћа на онај уобичајени проблем како смо индексирали те податке и врсте индекса које смо користили за те податке, а затим нас враћа на надљудске захтеве у погледу перформанси. И неко ко има приступ правим системима и правим алатима за извођење подешавања тих мотора и започне да проналази врућу тачку и погледа где су упити, где се подаци крећу, врсте упита, како су упити структурирани, ко обавља упите и да ли се упити постављају у ред и морају ли се кеширати. Коју репликацију тражите?

И тако смо добро и заиста - по мом мишљењу - у тренутку у којем су чак и најбољи светски гуруи база података, у основи наши архитекти базе података и наш администратор и базе перформанси, по мом мишљењу они јако потребни да би започели с коришћењем правих алата да пружи оптималну подешавање индекса перформанси за било који мотор базе података. Будући да скала којом се бавимо и брзина којом се ствари крећу, то једноставно не можемо учинити руком, а покушај да то учинимо увек може увести друга питања перформанси, јер можда немамо искуства у том простору који покушавамо да решимо проблем. И верујем да ћемо се ту предати Берту, а ми ћемо разговарати о томе како су решили овај разнолики проблем и врсти ствари која њихов алат може урадите, посебно за свет Орацле. А с тим тамо, Берт, прећи ћу на тебе.

Берт Сцалзо: Хвала. Добродосли свима, ја се зовем Берт Сцалзо, радим за ИДЕРА. Ја сам старији менаџер производа за неке производе из наше базе података. Данас ћу демонстрирати неке од њих. Али желим разговарати о индексима, јер се слажем са свиме оним што су сви овдје рекли, посебно са задњим слајдом, да су индекси толико сложени да вам је потребан алат и надам се да ћу вас увјерити. Дакле, дизајн Орацле индекса, није тако лако као некада. Многи људи неће бити сигурни у себе када гледају опције, и свиђа ми се ова изрека коју сам повукао из историје, „у тим стварима је једина сигурност сигурна да ништа није сигурно.“ И тако некако мислите о индексима ових дана, јер чак и ако мислите да знате одговор на који треба да индексујете Кс, И или З, заиста не можете бити сигурни док то не испробате, јер се ти оптимизатори понекад понашају другачије према очекивању. Тако да постоји пуно покушаја и грешака код дизајна индекса. Сада, у добрим старим временима, ако вам је био потребан индекс, углавном су постојала само два питања или једно питање. Да ли је био јединствен или није био јединствен? А можда сте помислили и на друге ствари попут „Колико индекса могу да имам највише на једној табели?“, Јер превише индекса успорава ваше уметке, ажурира и брише. Такође сте могли бити у вашем систему база података, имали сте ограничења у томе колико ступаца може бити у индексу више ступаца, јер понекад су постојала ограничења на основу величине странице или блока вашег мотора базе података, али у стварности је то било прилично једноставно назад у добрим данима. Или сте га индексирали или нисте. И заиста, све је било у стаблу Б. Могли смо дозволити дупликате или не, и о томе се радило. Живот је био добар, живот једноставан.

Па, данас живот није тако добар или тако једноставан. Ставио сам црвени знак Гхостбустер на начин на који смо то некада радили, јер сада имамо Б-стабло насупрот битмапу, насупрот битмапу. И објаснићу шта су неки од њих у трену. Кластерирани и непрустрирани, јединствени или дупликати, према напријед или обрнутим редослиједом, темељени на функцијама, партиционирани или не партиционирани. Ако је укључена партиција, да ли је то глобална или локална подјела? Ја ћу и то објаснити. А онда постоји и нешто што се зове индексирана организована таблица. А заправо је пола туцета остало да сам остао одавде, јер мислим да их сада имам довољно што би вас требало уверити да су индекси много тежи него што сте можда мислили. На овом посебном дијапозитиву покренућу у горњем левом делу дијаграма и имам табелу. И прво што морам да одлучим је да ли дозвољавају објективне таблице, у зависности од верзије базе података и добављача базе података, или су само релативне? Идем низ десну страну и кажем да правимо релацијску таблицу. Следеће питање које морам да поставим себи јесте да ли је то у кластеру? И многи од вас који сте неко време радили с Орацлеом сетићете да су се кластери вратили за Орацле 6 дана. Они се данас вероватно не користе много, али пусти ме да прво спустим ту грану.

Ако бих ставио своју табелу у кластер, морао бих да имам индекс кластера на тој табели. Сада, у Орацлеу, када сте групирали табелу, у основи сте спремали редове или су редови били близу један другом где су вредности биле сличне. И тако, морате имати индекс кластера и тај кластерирани индекс може бити не партициониран. Другим речима, заправо није било метода партиционирања како бисте направили кластерирану табелу. Било је строго нераздељено. А зато што није била подељена, била је глобална. Објаснићу вам шта је глобално за минуту. И увек је било Б-стабло. Другим речима, када сам сишао с те гране, било је прилично једноставно, нисам имао много избора. Ако бих на неком кластерираном столу направио индекс без кластера, што је у неким верзијама било дозвољено, опет није било партиционирано; када није подељен, онда је ваш једини избор глобалан. И тако, тамо имате избор Б-стабла или битмапе. Опет, то је зависило од ваше верзије базе података. Али сада се вратимо на табелу релације и поново крећемо низ десну страну, а сада ћемо имати обичну, стару, редовну таблицу: релацијску. Биће у простору за столом. Прво сам овде с десне стране. Дакле, то је организација. Следеће питање које морам да поставим себи је: „Да ли желим да поделим ову табелу или не?“ Понекад бисте поделили партицију јер сте помислили: „Хеј, оптимизатор ће бити паметнији у вези са тим како да оптимизира упите. “Али много ДБА ће вам рећи да је разлог због којег то радите у административне сврхе. Ако имате табелу од сто милијарди редака, ако је поделите на партиције или канте, када желите да додате податке у последњу канту, можете да испустите и индексујете то само неколико милиона редова. Можете да убаците те податке и онда можете поново да направите тај индекс на само тој корпи.

Иако је то била добра техника за неке, оптимизацијске технике попут уклањања партиција, његова стварна вредност била је могућност администрирања или обављања административних послова на мањим деловима. Када одем на групу организација, прво питање је било: "Да ли сам је поделио или нисам?" Идемо улево, нећу да поделим сто. Сада вам се може чинити чудно када вам то кажем, али могли бисте имати нераздељену табелу и тада не можете партиционирати индекс онако како сте навикли или можете поделити индекс. Стани и размисли. Ваша таблица има у основи једну канту, као што сте одувек мислили, а ипак ће ваш индекс имати више канти. Када се то догоди, где постоји несклад између броја канти и табеле и броја канти у индексу, то је оно што глобално значи. И тако, ако табела није партиционирана и ако је индекс подељен, сматра се глобалном, јер постоји неусклађеност. Сада, допустите ми да се вратим на хрпу организације и дођем умјесто на партицију. Сада, ако имам табелу за партиције и рецимо да табела има четири канте, четири партиције, мој индекс може имати четири канте тако да мој индекс одговара мом дизајну таблице. И тако је, преко десне стране, готово. То би се сматрало локалним. Локални индекс значи у основи да се подјела табеле и индекса врши на исти начин и има исти број жлица. И онда када имам локални индекс, то би могло бити Б стабло или битмап, и та зелена стрелица која се успиње, показује вам да чак и ако је Б стабло, још увек можете да се одлучите. То може бити засновано на функцији. Такође, ако је битмап, постоје различите врсте битмапа. Постоји нешто што се назива индекс придруживања битмапе. Ако обављате складиштење података, то је врло популарна врста индекса за схему или дизајн звезда. Оно што се догађа је да индекс има ИД-ове ретка за оно на што указује у табели, али ће такође имати и ИД-ове редака за надређене табеле, тако да када морате - морате да поставите звездицу шема и тражите изглед у табели чињеница, табела на табели чињеница показује на податке који вас занимају и упућује вас на сваки ред у вашим димензијама, тако да морате имати само један индекс.

А заправо је то настало због Ред Брицк-а, који је био база података пре много година - пуно људи се тога може сећати. Дакле, ако погледате ову слику - и имајте на уму да нисам ставио све на ову слику јер би слика била много већа - још увек постоје додатна питања о којима овде у тексту имам горе у горњем десном делу . Да ли је то обрнути редослед налога? И можда ћете рећи: „Зашто бих желео индекс обрнутог редоследа? То нема смисла. "Па, ако сте у кластеру у Орацле-у, ако радите праве кластере апликација, ако индексе држите у реду, тако да нису обрнути, ако имате много обрада које погађају исте вредности или исте вредности индекса, оно што би се догодило је да имате вруће области вашег Б-стабла. Значи да бисте се свађали и евентуално закључали да бисте покушали и приступили тим стварима, а то бисте радили преко чворова у мрежи. Па, ако ставите индекс обрнутог реда, сада то можете поништити. Можете рећи, „Па, сличне вредности су у различитим деловима дрвећа, тако да немам своје засебне чворове који се надмећу за топле површине на дрвету.“ И онда приметите да јединствен не ради са неким опцијама . Ако погледате, набројао сам три, пет, осам и једанаест, тако да има случајева да не могу имати јединствени индекс. Исто тако, постоје и случајеви у којима не могу имати обрнути индекс, а онда постоје додатни проблеми попут бележења или неписивања, паралелне и неспоредне. Могу да доделим ствари одређеном подручју у меморији.

А ово изоставља још прилично значајки у Орацлеу. Рекао бих да када погледате Орацле 12, вероватно опет постоји још око пола туцете ствари које бих могао додати овој слици. Индексирање је заиста сложено и стварно се слажем са претходним говорником, да бисте се кретали кроз ово и направили добар избор, потребан вам је алат. Можда вам је потребна слика попут ове и некаква методологија о томе како бисте бирали ствари и надамо се да ће вам алат помоћи да стигнете тамо. А онда ће то бити суђење и грешка. Увек кажем људима при индексирању, "погледај пре него што скочиш." И тада овде можеш видети малог пса, како скаче без погледа, завршит ће у води с морском псијом, или момка који се спрема да скочи у воду, и налеће на себе. Морате размишљати о индексирању, јер креирање индекса не значи да ствари увек иду набоље. У ствари, креирање индекса може успорити ствари. И изведба упита може бити већа за један избор у односу на други. И даћу вам добар пример. Ако радите звездану шему дизајна и на таблицама димензија користите индексе битмапа у једном случају, а у другом случају кажете: „Користићу Б индексе стабала“, добили сте битмап у односу на Б- дрво. Могу вам рећи да ће једно решење бити величине величине или евентуално неколико реда величине брже од другог. Али имајте на уму да оно што функционише у једном окружењу, попут окружења за складиштење података, вероватно није добар избор у ОЛТП окружењу.

На пример, ако сте узели трансакцијску табелу и ставили битмап индексе на трансакциону табелу, скупо је израчунати и ресетовати битмапе, ове дуге низове и тако у ОЛТП табели, можете да ударите у табелу тако јако да битна мапа индекс може постати корумпиран и успорити ваш систем јер једноставно нису намењени за ажурирања. Одлични су за брз приступ, али нису добри за ажурирања. Мислим да индекс узима покушаје и грешке. Заправо више нема златног правила - у овој једначини је превише различитих променљивих да бисте знали - и на крају ћете морати да погледате извршење или објасните планове у бази података да бисте видели да ли радите добре изборе или не. А понекад, анализа плана може готово сама себи бити наука. Данас то нећу покривати - то је друга тема - али не узимајте дизајн индекса здраво за готово. Постоје оправдани разлози због којих постоје сви ти луди типови индекса које сам вам показао на претходној слици и о којима је претходни говорник говорио. Они нису само створени, јер је то била уредна карактеристика да се негде стави на контролну листу за добављача базе података; постоје случајеви употребе или сценарији у којима су ови индекси важни и који ће значајно променити. Сада ћу вам показати неколико примера различитих врста индекса у једном од наших алата. Дозволите ми да дигнем екран да га видите. Океј, па овде седим - дозволите ми да минимизирам ову апликацију. Сједим унутар ВМваре-а и покрећу Виндовс Сервер 2012 ВМ.

И видите, имам скоро сваки алат који је човеку познат. Као менаџер производа морам бити свестан своје конкуренције, тако да није само оно што имам алате, већ шта раде моји конкуренти? И овде имамо овај алат под називом ДБАртисан, који сам већ покренуо, али идем - па ћу га само представити. А оно што можете видети је да је то заиста леп алат, јер уместо да користите, рецимо менаџер предузећа за Орацле и СКЛ Манагемент Студио за СКЛ Сервер, и МиСКЛ Воркбенцх за МиСКЛ, и дванаест других база података које подржавамо, па имам све своје базе података уграђене у овај један алат. Ту је ДБ2, постоје МиСКЛ, Орацле, Постгрес, СКЛ Сервер и Сибасе, и то је - имам само шест база података у овој конкретној ствари, јер не могу - алат подржава дванаест база података, али мој лоши ВМ, који истовремено покреће шест база података и покушава правити демонстрацију, отприлике је онолико колико ће мој хардвер олакшати. Дозволите ми да се сада вратим на Орацле и ако приметите, све ове ствари су исте. Ако желим да измерим своје перформансе у ДБ2, то су исти избори као и у Орацлеу. Сада под корицама радимо пуно различитих ствари тако да не морате знати шта се догађа, али ми вам дајемо конзистентно сучеље како бисте могли да будете стручњак за више платформи базе података. А то би укључивало рад с индексима, тема ове дискусије.

Допусти ми да дођем овде и да прво почнем тако што ћу прегледати неке таблице, а ја имам базу филмова која има само неколико табела. А ако погледам одређену таблицу, попут таблице купаца, када је овде доведем, могу видети свој дизајн таблице, ево мојих ступаца у мојој табели, и овде информације о сваком ступцу. Имам својства за табелу, али имајте на уму да овде имам картицу за индексе и видим да су индекси на табели. Примјетите да је један од тих индекса мој ПК индекс, мој примарни кључ. Ови други изгледају само као индекси за побољшање приступа упитима, можда питамо по имену или презимену или гледамо телефоне и поштански бројеви. А ако одаберем одређени индекс, попут овог поштанског броја, и двоструко кликнем на њега, сада видим да је, хеј, то је јединствени индекс и ево неких других врста, битмапа, јединствених, јединствена, без обзира је ли сортирана или не, без обзира на то је ли евидентирање или не, без обзира да ли је обрнутог реда или не, без обзира да ли је основа функције. Ох, ево забаве коју нисам покрио. Заправо можете имати невидљиве индексе. А ти би рекао: "Па, зашто бих хтео да радим невидљиви индекс?" Па, даћу вам добар пример. Ви сте у свом производном систему и имате проблем са перформансама и нисте сигурни да ће креирање индекса решити проблем, тако да не желите да креирате индекс и успорите производњу, али некако или друго што желите бити у могућности да га тестирам Можете да креирате индекс у производњи као невидљив, што значи да неће много апликационог кода, позивањем оптимизатора, користити тај индекс. Направљено је, ваљано је, али неће се користити. Затим можете да преузмете упит за који мислите да би вам овај индекс помогао, или низ упита, и можете да унесете наговештај и кажете: „Хеј, оптимизер, тамо је невидљиви индекс који желим да употребите и пустите знам да ли сам ствари побољшао. "И сада сам нешто тестирао у производњи, али нисам покварио апликације које су у току. То је употреба за невидљиви индекс. Звучи глупо кад први пут чујете за то, али то има користи.

На индексима такође можемо одредити да ли су паралелне, као и колико је примерака паралелних. Сада, у окружењу апликација које нису у кластеру или не-реалном кластеру, тако да није паралелно, паралелно би значило колико подпроцеса може да покрене мој упит да бих покушао и радничке процесе да бих покушао и брже или брже решити ствар. . И паралелни случајеви би били, ако сам у правом кластеру апликација, рецимо да имам десет чворова, колико чворова ми је дозвољено да поделим посао на? Можда је четири од десет, а на сваком од њих четири подпроцеса. То је пример. И тада имамо компресију кључа. Можете стварно компримирати индексе? Да или Не. И наравно, онда имате своје параметре складиштења које можете одредити у индексима. Сада их нисам покривао, јер су у ствари више параметара за складиштење него броја индекса. И коначно, имамо да ли хоћемо да направимо ове или не партициониране или не. Пустите ме на тренутак. Идем на другу шему. Ово је звездана шема и, на пример, табела периода је табела димензија. Ако сте икада радили дизајн шеме звезда обично имате димензију за време и тако у овој бази података и овој схеми звезда, период је временска димензија. Сада знам да ће изгледати смешно, а ви ћете рећи: "Душо, погледај све те ступце - да ли је момак икад чуо за нормализацију?" Па, кад сте у складишту података или у облику звездане шеме, ви обично имате не - имате таблице које би типична особа гледала и рекла: "Боже, ово није баш добро дизајнирано." Али то је начин на који то радите у окружењу за складиштење података.

Пазите шта ће се догодити јер, у реду, постоје сви ти ступци, погледајте то, имам индекс за сваки ступац. Сада, у ОЛТП окружењу које би било не-не. Успорило би све моје операције. У окружењу складиштења података испуштао бих их током циклуса учитавања у пакету. Учитајте без режијских записа или индекса, а ја бих поново створио индексе. А ако бих поделио своју табелу, уместо да морам да испаднем индекс за сваку канту у табели, могао бих једноставно да испустим индекс на канту или канте у које ће подаци да иду током тог циклуса учитавања серије. А затим поново створите само део индекса за те канте. И то га чини врло управљивим. А ако погледам - ​​па ево колоне која се зове „Холидаи Флаг“ и у основи то је да или не. Примјетите да је ово битмап индекс и за већину ћете рећи: „Па, то има смисла.“ Да или не, И или Н, постоје само двије вриједности које имају смисла. И зато што када читате документацију за битмап индексе, увек вам кажу да одаберете нешто са слабом кардиналношћу.

Сада, дозволите ми да уђем у једну од својих таблица чињеница, па ево ми наредбе. Ово су моје наредбе дневно. А сада ћете видети да опет имам доста ступаца и опет ћу имати више од неколико индекса. И управо овде, имамо нешто што се зове универзални код цене. Ово је било за малопродају, тако да знате оне мале бар кодове када нешто купите у продавници, ово је универзални код цене. Сада постоје милиони универзалних кодова цена. Сада, за ову конкретну компанију која је продавала ствари, вероватно су имали 1, 7 до 2 милиона универзалних цена кодова, тако да ћете очекивати да то неће бити битмап индекс, јер 1, 7 милиона различитих вредности звучи као велика кардиналност. Али у стварности, у окружењу за складиштење података, желите да ово буде битна мапа. Дозволите да објасним зашто. Па, може постојати 1, 7 милиона различитих вредности за овај универзални код цена, број редова у овој табели наредби је у стотинама милиона до милијарди редова. Мој индекс је ниска кардиналност у поређењу са величином или кардиналношћу табеле. Због тога је ниска кардиналност. То чини битмап индекс корисним, иако је контраинтуитиван са 1, 7 милиона различитих вредности које бисте овде одабрали. Ако сам знао да желим да употријебим индекс придруживања битмапе, производ тренутно не подржава то, додајем то за следеће издање, али то би била друга алтернатива. И у звезданој шеми, запамтите, индекс битмапе налазио би се на табели чињеница и да би један индекс у Б-стаблу указивао на ред у табели чињеница, а затим на сваки ред који је у табели димензија био видљив за ту чињеницу . И тако, тамо имате другу опцију. И тако, да видимо, сада желим да изађем из табела и само желим брзо да вам покажем да имам исте податке, под индексима, и да ћу урадити исту основну ствар.

Разлог зашто сам то изнио је тај што можете приметити, хеј, овде нема примарних кључева. Примарни кључеви се раде с ограничењем кључа, тако да су заправо покривени дефиницијама ограничења. То би били индекси који нису део ограничења. Сада би могли рећи: „Па, сачекајте мало, који може изгледати као страни кључ, а страни кључ је ограничење“, али страни кључеви и већина база података не стварају аутоматски индекс на колону страног кључа, иако је препоручљиво, и ето вас - опет имам све исте изборе. А ако желим променити само да будем компримован, могу то и учинити.

Сада компресија делује само на Б-трее индексу. Оно што то дозвољава је да када погледате различите чворове на Б-дрвету омогућава компримирање неких вредности. То стварно није компресија попут компресије стола, то је компресија онога што је смештено у Б-стаблу у чворовима који нису листови. То не штеди ни тону простора, али може направити разлику. И с тим сам приметио да се временом прилично приближавам, па оно што желим је да се вратим назад и зауставим своје дељење. И наш производ имамо на четрнаестодневном пробном раду на идера.цом. То је прилично добар производ, посебно ако радите са више платформи базе података. Ако радите са две или три различите базе података, овај алат ће вам олакшати живот. Имамо алате који ће вам помоћи у дизајнирању и одабиру индекса, имамо алат који се зове ДБ Оптимизер. Данас то једноставно нисам могао покрити, то би било превише. Ако желите да ме контактирате, ево моје адресе е-поште, или ме можете ухватити на моју приватну адресу е-поште, а ја имам блогове, имам веб локацију и блогове и ЛинкедИн профил. Дакле, слободно ми се обратите о било чему, чак и ако то није повезано са производима, ако само желите да разговарамо о базама података, ја сам штребер у срцу и волим да се бавим технобоблом.

Ериц Каванагх: У реду, добро, Дез, Робин, сигуран сам да имате барем пар питања, овде имамо још неколико минута. Дез, шта мислиш?

Дез Бланцхфиелд: Имам једно сјајно питање које вам морам поставити, сједи ми у позадини ума. Који је најлуђи сценарио који сте видели? Читао сам ваш блог, пратим вас помно. Ви сте вероватно један од ретких људи који су живели у готово свим невероватним случајевима, и мислим да је др Робин Блоор други који сам срео у мој животни век. Али, вероватно сте видели сваки луди сценариј, који су од најлуђих сценарија које сте видели, на које сте наишли и попут људи који се једноставно нису могли носити, успели сте да ходате и изводите трикове са Једи ума са овим ДБАртисаном?

Берт Сцалзо: Једном смо имали муштерију која је у свом дизајну базе података размишљала веома онако како би размишљали у дизајну изгледа датотека, и тако, кад нормализујете базу података, прво што покушате да урадите јесте да се ослободите понављајућих група. Па, имали су колону и чинили су је дугачком, или БЛОБ или ЦЛОБ, и у њу би ставили вредност, број један, тачка зарез, вредност број два, тачка са зарезом, број вредности, зарез и тачка би имали хиљаде вредности тамо, али они су требали да претражују ону колону и они кажу: „Зашто ова ствар тече тако споро?“ И ја сам као „Па, не можете да направите индекс онога што сте урадили, то је једноставно то им није дозвољено. ”Ми смо им заправо, користећи планове, показали да оно што требају учинити је нормализација те табеле. Не зато што је нормализација нека академска вежба која ствари чини бољом, већ зато што су желели упит на том пољу, што је значило да желе да га могу индексирати, а ви га нисте могли индексирати на понављајућу групу, или бар не лако . И то је вероватно најгора ствар коју сам видео.

Дез Бланцхфиелд: Да, занимљиво је колико често наилазите, мислим да изазов са базама података, људи заборављају да је то наука. А у овом целом простору постоје људи који дипломирају и докторирају, пишу радове о томе, а ви сте написали читав брис, укључујући ваше ТОАД-ове приручнике и друге ствари из меморије. Тренд ка некаквим „великим подацима“ сада, видим да велики број људи заборавља основе архитектуре базе података и технологије база података, науке о базама података, ако желите. Шта видите на терену што се тиче одступања од традиционалних платформи база података и традиционалног размишљања базе података које смо ефикасно прикупили до темеља, а то је био само случај подешавања и скалирања перформанси. Да ли видите пуно људи да се поново науче и имају искуство где само седе и имају „а-ха“ тренутак, као еурека тренутак, где они схватају, да су ове велике количине података заправо само неке заиста велике базе података? Да ли је то ствар вани и људи вам одговарају узвраћајући и: „Заборавили смо, шта смо знали и можете ли да нас вратите са мрачне стране?“

Берт Сцалзо: Па, не, и ово је ужасно морати признати, али продавци релационих база података такође су пили и Коол-Аид. Ако се сећате, не знам, пре отприлике деценију, почели смо стављати неструктуриране податке у релацијске базе података, што је била чудна ствар, а онда се тим подацима, релацијским базама података, сада додаје НоСКЛ-тип ствари. Заправо, у Орацле 12, ЦР2 - знам да још није изашао - али ако погледате бета верзију, ако сте у бета програму, он подржава штрајкање. И тако, сада имате релацијску базу података којој није додат концепт из НоСКЛ изоштравања. И тако, чини се да је „а-ха“ тренутак више за људе на релацијској страни који иду „а-ха“. Нико више неће то учинити како треба, чак ни управитељи база података, тако да имамо морам да пређем и придружим се мрачној страни.

Дез Бланцхфиелд: Тачно, тако да говорите о преласку на пуно неуредних података, ако сам добро разумео, стављања у, оно што сада називамо великим платформама података, што је помало смешно, јер они није тако старо, али зар то онда не значи да се преиспитују на оно што раде са својом релацијском базом података како би добили више налета за свој долар?

Берт Сцалзо: Не, обично, ако имају потребу за - то би било цитат "потребе за великим подацима", они откривају да уместо да морају да иду на другу платформу базе података и ураде нешто у не -релацијски начин, добављачи базе података сада им дају исте нерелацијске технике у њиховој релацијској бази података, да то ураде. Мислим, добар пример би био, ако имате неструктуриране податке, попут ЈСОН типа података или неког другог сложеног типа података који има значење уграђено у саме податке, добављачи базе података не само да то подржавају, већ ће вам дати АЦИД поштивање неструктурираних података. Релацијске базе података прихватиле су новије технике и технологије, па се, опет, чини се да је "а-ха" више то не, "Хеј, ми, програмери апликација, нешто смо научили и морамо то поново научити", то је "Хеј, сада то радимо, како то могу учинити у вашој традиционалној релацијској бази података и радити то као што радим у овој бази овде? "и то постаје све распрострањеније, и као што рекох, и сами продавци база података омогућавају то.

Дез Бланцхфиелд: Тачно, ко су традиционални осумњичени у овом простору за алат ДБАртисан и то? Направила сам домаћи задатак на основу онога што сте недавно написали, а из памћења сте нешто написали, мислим да је то био један од ваших блогова, о екстремним перформансама база података у свету Орацле. Не могу да се сетим када је то било, мислим да је то негде ове године из сећања или крајем прошле године ово написао. И чинило ми се да је то традиционални, уобичајени осумњичени за тип теме о којој данас говоримо, где ће људи ићи у веома велико окружење базе података и тражити оно што ви називате екстремним добицима у томе. Ко су уобичајени осумњичени који тамо виде да узимају ДБАртисан и користе га добро?

Берт Сцалзо: Па, имамо пуно муштерија, у ствари, данас сам био код једне веома велике владине агенције која - и они дословно вероватно имају близу 1.000 примерака нашег софтвера, јер омогућава људима да се фокусирају на оно што раде " радиш, а не како то учинити. Мислим, у реду је, сви би требали знати како нешто учинити, али продуктивност постиже оно "што". Ако ме посао пита да одрадим задатак, то је све што их занима. Када сам добио потврдну ознаку да кажем када је задатак обављен? Не коју технику или оно што сам користио да бих стигао тамо. И тако, наш алат омогућује им да се фокусирају на оно, и омогућава им да буду далеко продуктивнији, и то је заиста огромна предност, и као што рекох, неке базе података нуде алат само за платформу њихових база података. Нудимо га за дванаест платформи база података. Имам исти тијек рада, исти графички кориснички интерфејс, исте навигације. Ако знате како одобрити привилегију кориснику или како креирати табелу или креирати индекс у бази података, то можете учинити у свих дванаест јер је то исти изглед и изглед и исти ток рада. То има велику вредност за наше купце.

Дез Бланцхфиелд: Да, ваљда, људи желе да добију више новца за свој новац из својих људских ресурса. А дани проласка појединачног стручњака за Орацле, Ингрес и ДБ2 су прошли. Очекује се да ће људи бити џек свих обрта, тако да мислим да им је ова ствар апсолутно спасила живот.

Само последња ствар пре него што је предам доктору Робину Блоору. Споменули сте да постоји бесплатно преузимање за четрнаест дана, шта значи - ако идем даље и то ћу учинити, успут, ставићу га у лабораторију Блоор тецх и вртети ово устати и ријешити се сам - прије данашњег дана то нисам имао прилику. Споменули сте четрнаестодневно суђење, рекли сте да га покрећете на ВМ-у на рачунару, претпостављам да је лаптоп. Шта су, како је постављено на улазном нивоу да неко дође у руке и искористи четрнаестодневно суђење, мало пре него што се вратим Робину на његова питања?

Берт Сцалзо: Било који Виндовс окружење, па Виндовс 7, виртуелна машина са једним ЦПУ-ом и четири гиг меморије. Нисмо баш дебели или скупи алат. Сада, ако желите да покренете ваш сервер базе података на том истом ВМ-у под истим Виндовс-ом, да, требало би да додате још, али ако вашу базу података покрећете на серверу базе података или на засебном ВМ-у, ВМ ће се учитати и покрените наш производ је врло лаган: један ЦПУ, четири гиг меморије, готово свака верзија Виндовс-а - и подржавамо и тридесет две- и шездесет четири битне инсталације. Али морате да инсталирате клијента добављача базе података. Дакле, ако сте се желели повезати с Орацлеом, морате инсталирати СКЛ нето клијент, јер то Орацлеу треба да бисте разговарали са базом података.

Дез Бланцхфиелд: Звучи прилично директно. Мислим да је једна ствар од тога више од свега чега се надам да ће људи одузети, осим схватања да ће овај алат спасити живот, да би они требали да је преузму и преузму, и играју се с њом, с обзиром да нудиш четрнаестодневно бесплатно пробно суђење. И може да ради на свом тренутном лаптопу без инсталирања било чега додатног, јер ако већ раде администрацију базе података, већ раде са базама података које имају све те алате и да ли их ради на локалном ВМ-у или на њиховом локална радна површина, звучи као да је безболно инсталирати и играти се. Зато топло препоручујем људима да то ураде.

Робин, сигуран сам да имаш питања и Ериц, вероватно имаш нешто од публике, тако да Робин, како би било да пређем к теби, а онда назад до Ерица?

Робин Блоор: Да, у реду, па имам ствари за рећи, мислим, одувек сам сматрао да је ово подручје фасцинантно јер је - резало сам зубе на њему. Али истина је да сам, вероватно, отприлике од 1998., 1999. године, у великој мери за оно што је Орацле у ствари способан. И, знао сам Сибасе и Мицрософт СКЛ Сервер, оба су прилично једноставна у поређењу са оним што Орацле може да уради. Насмијао си ме кад … Мислим, покривао сам уста кад сте почели да причате о оштрењу. Орацле је то раније радио. Орацле представљен у неком тренутку, они су се нервирали од идеје о релацији објекта, па су увели могућност креирања својеврсне нотације објекта и складиштења предмета у Орацлеу, а ја сам разговарао са једним од њихових инжењера, нешто налик пар година након што су га представили и питао сам га колико људи га користи, а он је рекао да мислим да су га два купца пробала и то је било то. И мислим да ће се иста догодити ако почну да се труде и раде тренди НоСКЛ ствари. Знаш, мислим да је грешка, мислим, баш ме занима какве су твоје мисли. Свакако, они - пију Коол-Аид. Осећају се као да морају да постављају тврдње сличне великим НоСКЛ базама података као што је Цассандра, али знате, да ли то има смисла за вас?

Берт Сцалзо: Не, ударио си ноктом право у главу. За мене бих, ако радим релациону, одабрао добављача релације као што је Орацле или СКЛ Сервер или ДБ2 или Постгрес, али ако ћу урадити нешто што није повезано, у великом простору података или НоСКЛ простору, изабраћу прави алат за прави посао. И не мислим да би то, наравно, прво отишло код продавца моје релацијске базе података. А онда му додате другу бора, а то је, шта је на располагању у облаку? Толико људи жели да избаци своје базе података. Затим морате погледати свог пружатеља услуга облака и рећи: "У реду, шта давате, које базе података имате на располагању за мене које одговарају мојим потребама и колико су исплативе, и искрено која је стопа или накнада за употребу те базе података у облаку на сат или по дану. А по гигабајту или терабајту? "А оно што ћете наћи су можда неке релативно новије базе података попут Монго или Цассандра, можда су њихове цене јефтиније, па ако идете да радите велике податке са мулти-петабајтом, можда морају - само са становишта трошкова - да размотре базе података НоСКЛ у облаку јер су то можда најисплативији начин да се то уради.

Робин Блоор: Да, у реду. Мислим, моја врста - ствар о релацијским базама података из мог искуства - која је довољно дугачка да има ожиљке, то је сигурно - постоји пуно здравог разума да ако почнете да је примењујете и - разумете шта је тачно релација, то је, Мислим, сећам се да сам једном обавио консултације са једним купцем, и они су ме увели у собу и направили су неку врсту дијаграма ентитета и створили трећи нормалан облик, модел каквог су примарни системи компаније. Било је око двеста четрдесет столова и они су рекли: „Па, шта ви мислите о томе? За то ћемо направити базу података ", и рекао:" Шта ви мислите о томе? "Рекао сам, " Мислим да неће радити. "И тачно је тачно, знате, јер они су завршавали горе како би се створила одређена структура унутар једанаест смјера. И то је ствар коју треба схватити у релацијским односима. Зато ме некако занимају колико лошег дизајна наилазите. Мислим, немам проблема са ДБАртисаном - он ради врло разумне ствари и чињеница да се заправо можете приказати на више платформи, мислим да је предивно - али колико сусрећете тамо где је дизајн дизајниран где су људи могли да реше све врсте муке ако се спусте на звездану шему, уместо да добију пахуљицу о томе, знате?

Берт Сцалзо: Па, не желим да звучим попут, претпостављеног или арогантног, али рекао бих чешће него не. Јасно је да већина база података са којима се сусрећем вани има проблема или проблема. Што је добро, јер нам алати, попут нашег алата за оптимизацију базе података, могу да им помогну да реше те проблеме, али оно што ми је заиста смешно јесте да су многи проблеми исти и једноставни проблеми изнова и изнова. Пре неки дан сам радила са клијентом који је имао једанаестострани упит за придруживање, а ја сам рекао: „Ок, зашто ниси користио клаузулу?“ И они кажу: „Па, нисам Не знам шта је то. "А онда сам рекао:" И погледај своје подселекторе овде на корелиране и оне који нису у корелацији ", рекао сам, " У неким случајевима имате своју клаузулу где на најдубљем нивоу, " Референца таблице је од спољашње стране. "Рекао сам, " То је, померите је на прави ниво, немојте је уграђивати дубље него што је морало, збунит ћете оптимизатор. "И са неколико пар подешавања узео је нешто што је радило око два сата и спуштао га на десет минута и то је било једноставно - у том случају нисмо урадили ништа друго него побољшали СКЛ који су написали. Мислим да је проблем у томе што пуно универзитета и пуно људи који програмирају у неакадемском окружењу, они то науче као процесе евидентираног времена или процесе оријентисане на редове и релациони је скуп оријентисан природом, и тако ви морају да размишљају у сетовима да би писали добар СКЛ.

Робин Блоор: Да, мислим да је сасвим тачно. И морате схватити, ствари су такве, људи би требали да знају ове АБЦ-ове ствари. Није битно. Нећете бити у стању да радите рационалне ствари ако не схватите да ће вам чак и добро осмишљена, добро моделирана база података требати времена, а неке врсте ће вам требати времена. То раде зато што свет никада није пронашао начин да их натера да брзо крену. Пронашли су начине организовања података тако да иду брже него иначе, а велико ентузијазам који морам рећи за НоСКЛ базе података је једноставно што избегавају придруживање. Они само започињу изградњу база података с истим ширењем података у њима, јер ако се придружите било којој од НоСКЛ база података, они могу сисати. Зар не мислите?

Берт Сцалзо: Апсолутно. И морам се смијати јер сам започео пут прије релацијских база података и назад кад је Ингрес био РТИ, Институт за релациону технологију и нисмо имали СКЛ, имали смо пре-СКЛ релацијске језике. Мислим да се у Ингресу тада звао Куел. Дакле, добили сте од ових старих парадигми базе података попут мреже и више графичке, или хијерархијске, и пролазите кроз релацијске парадигме након пар деценија и сада ми се чини да се опет враћамо на готово хијерархијске. Скоро да смо се вратили.

Робин Блоор: Да, у реду. Боље да се предате Ерицу, трошим превише времена, али имамо ли питања публике, Ериц?

Ериц Каванагх: Имамо их неколико. Отићи ћемо мало дуго, али пребацићу те на пар. Имали смо пар питања око невидљивих индекса. Једно питање је било: „Да ли неко треба да користи ваш алат да би их видео?“ Друго питање је било: „Па, шта ако си слеп?“

Берт Сцалзо: То је добро.

Ериц Каванагх: И радознало питање, па само ФИИ.

Берт Сцалзо: Не, не морате имати наше алате. То је Орацле функција, индекс невидљивих. У основи, Орацле само чува део метаподатака који гласе: „Оптимизатор, занемарите овај индекс. Овде је, али ако вас физички не упуте путем наговештаја, не користите ово наговештај за оптимизацију у СКЛ команди. "И тако, не, не морате имати наше алате и у сваком погледу то је обичан стари индекс, можете га видети у било којем алату, само ће оптимизатор рећи: „Занемарићемо га у нормалној обради упита.“ Морате да га усмерите ако желите да се навикнете. Стварно је прикладно за сценариј који сам описао, а то је да ако желите да направите индекс у производњи, али не ризикујете да покренете извештаје или ствари које се већ покрећу, али желите да их тестирате, то бисте могли и да урадите. То је оно за што је најкорисније.

Ериц Каванагх: То су добре ствари и ту је било још једно добро питање. „Шта је са неким од ових нових база података у меморији? Како технологија базе података у меморији мијења игру у односу на индексирање? "

Bert Scalzo: Boy, well we – now that's a good, I'm glad someone asked that question, we're going to have to go another half hour. No, the in-memory, it depends on the database vendor. Now, normally, I am, I speak nothing but praise of anything that Oracle does because it's amazing the technology they've built, but when you tear back under the covers and you look at what in-memory is in Oracle, in the Oracle database, what it is in reality is it still kept row store on disk, and it will get loaded column-store in-memory, and if there's insufficient memory to hold the whole table, it will revert back to for the portions; it won't fit in memory, to doing it row store, and so you could actually do a select against the table and for half the table, you 're using an indexing hitting traditional rows at the table, and for the other half of the select it's actually going out and just grabbing everything from an in-memory search, and so, it's different in the way that SQL Server, for example, implemented it with their Hekaton technology, you know, and SQL 2014, and it's been improved in SQL 2016, but in some respects, theirs is a more true version of in-memory, and, but each implementation has a pros and cons, but you have to kind of look under the covers and realize. Because, I had a customer who said, “Oh this table's in-memory – I'm just going to draw up all the indexes, ” and I'm like, “The table's bigger than the memory that you have on the server, so at some point some of the query's got to hit disk.”

Eric Kavanagh: That's a good description; that's good stuff. Well, folks, we're going to have a few more webcasts with these guys over the rest of this year, come back anytime you hear of Bert being on a presentation because we know he knows his stuff. It's always fun to talk to the experts. We do archive all these webcasts for later viewing. Here's Bert's contact information once again, and we'll try to dig up that link for the download and send it out as well by email, but you can always email yours truly:, we've got a bunch more webcasts lined up for this year and we're doing the ed cal right now, so, folks, if there's any topics you really want to hear about next year, don't be shy: Take care, folks, we'll talk to you next time. Bye-bye.

Тецхопедиа Цонтент Партнер

Особље Тецхопедиа повезано је са Блоор Гроуп и с њима се може контактирати користећи опције са десне стране. За информације о томе како радимо са индустријским партнерима кликните овде.
  • Профил
  • Веб сајт
Индексно лудило: како избећи хаос базе података