Rumah Pangkalan data Indeks kegilaan: bagaimana untuk mengelakkan kekacauan pangkalan data

Indeks kegilaan: bagaimana untuk mengelakkan kekacauan pangkalan data

Isi kandungan:

Anonim

Dengan Staff Techopedia, 5 Okt 2016

Takeaway: Host Eric Kavanagh membincangkan pengindeksan pangkalan data dengan Dr. Robin Bloor, Dez Blanchfield dan Bert Scalzo IDERA.

Anda tidak log masuk sekarang. Sila log masuk atau mendaftar untuk melihat video.

Rakan Kongsi Kandungan Teks

Kakitangan Techopedia berpangkalan dengan Bloor Group dan boleh dihubungi menggunakan pilihan di sebelah kanan. Untuk maklumat mengenai cara kami bekerjasama dengan rakan industri klik di sini.
  • Profil
  • Laman web

Eric Kavanagh: Tuan-tuan dan puan-puan, hello, dan selamat datang sekali lagi. Hari Rabu, pada pukul empat malam Timur, dan orang-orang yang mengetahui program itu, tahu apa maksudnya, sudah waktunya untuk satu lagi episod Teknologi Hot. Ya sememangnya. Nama saya Eric Kavanagh, saya akan menjadi moderator anda untuk sesi hari ini: "Indeks Insanity: Bagaimana Menghindari Kekacauan Pangkalan Data." Atau kerana saya merujuknya pada letupan e-mel yang terakhir untuk keluar, "perdebatan pangkalan data." Istilah panas hari ini, "bertengkar." Semua orang melakukannya. Terdapat slaid tentang anda benar-benar. Dan cukup tentang saya.

Oleh itu, siri Teknologi Hot benar-benar direka untuk menentukan ruang tertentu, berbanding Ruang Taklimat yang hanya satu-satu-satu taklimat penganalisis langsung, untuk Hot Tech kami mendapat dua penganalisis. Hari ini, ia akan menjadi Doktor Robin Bloor dan ahli sains kami Dez Blanchfield. Dan kita bercakap tentang topik yang saya fikir adalah benar-benar lambang apa yang berlaku di pasaran hari ini.

Intinya adalah kita berada dalam dunia kerumitan hari ini. Sebenarnya, jika anda berfikir kembali lima belas tahun, atau dua puluh tahun, ia adalah dunia yang jauh berbeza ketika itu, terutamanya berkenaan dengan teknologi pangkalan data. Pangkalan data digunakan untuk menjadi agak mudah. Hanya ada segelintir mereka; kebanyakannya adalah hubungan. Kini, kami mempunyai teknologi pangkalan data keseluruhan ini. Benar-benar skor pilihan di atas meja untuk sesiapa sahaja yang ingin membina aplikasi atau melakukan sesuatu dengan data. Semuanya berubah dan memberi kesan kepada orang-orang yang cuba menguruskan sistem ini. Kami akan bercakap hari ini dengan Bert Scalzo, yang pakar dalam bidang ini; dia pengurusan produk senior untuk IDERA, tentang apa yang anda boleh lakukan untuk mendapatkan pengendalian pada semua data itu. Dengan itu, saya akan menyerahkannya kepada Doktor Robin Bloor untuk mengambilnya. Robin, lantai adalah milik awak.

Robin Bloor: Baiklah, terima kasih atas pengenalan itu. Saya fikir - kerana itu adalah perkara dua tangan, saya fikir saya hanya akan bercakap tentang pengoptimuman pangkalan data secara umum sebagai pengenalan kepada pameran Hot Tech ini. Saya mula hidup - dalam teknologi dan analisis - Saya mula hidup melakukan ini kerana saya digunakan untuk menulis artikel mengenai keupayaan pangkalan data pada platform DEC VAX. Dan untuk itu, pembekal pangkalan data digunakan untuk memberi taklimat kepada saya. Dan perkara yang berlaku kepada saya ialah, mengapa anda mempunyai pangkalan data? Maksud saya, pada masa itu ramai orang yang digunakan untuk mencipta fail nilai utama dan menggunakannya untuk mempunyai jenis indeks yang tidak dapat dipindahtarafkan seperti yang kita panggil, tetapi untuk mewujudkan keupayaan pangkalan data, dan anda tahu, mengapa anda mempunyai apa-apa lagi?

Dan jawapannya, saya fikir Michael Stonebraker memberikan jawapan yang terbaik untuk itu, dan dia berkata, "Pangkalan data boleh mengetahui lebih lanjut mengenai data dan bagaimana pantas untuk mendapatkannya, daripada mana-mana program yang pernah tahu." Dan saya fikir itu menarik; ia adalah sifat permainan. Tetapi pada tahun 19 - sekitar 1989 yang saya mulakan dalam analisis teknologi dan anda tahu, pada masa itu, pangkalan data adalah pangkalan data yang sangat mudah dan relasi sangat mudah. Mereka mempunyai keupayaan yang sangat sedikit, maksud saya, mereka boleh menyimpan data, jelas, dan anda boleh menyokong dan mereka mempunyai, mereka mematuhi ACID, tetapi mereka benar-benar mempunyai pengoptimuman yang sangat lemah. Malah, sukar untuk berhujah bahawa mereka mempunyai kemampuan pengoptimuman sama sekali.

Dan kemudian mereka hanya menjadi lebih baik dan lebih baik, tetapi, anda tahu, apabila pangkalan data tidak berfungsi - seperti yang dinyatakan oleh para kanguru ini dalam satu cara atau yang lain menunjukkan - mungkin terdapat banyak alasan mengapa ia perlahan. Dan itu membawa saya ke titik: Pangkalan data mempunyai banyak fungsi, tetapi yang paling penting ialah pengoptimuman pertanyaan. Jika mereka tidak melakukannya, anda tidak akan menggunakannya. Ia mengenai mendapatkan maklumat dengan cepat, ini tentang dapat melakukannya apabila terdapat banyak pengguna yang bersamaan, dan itu masalah yang sukar. Dan apabila anda benar-benar melihatnya, mari kita memanggil mereka pangkalan data yang matang, jika anda suka - tetapi pasti Oracle, sedikit lebih rendah, Microsoft SQL Server, pasti Teradata dan DB2 - pengoptimasi pangkalan data tersebut telah mendapat, telah beberapa dekad bangunan. Anda tahu, mereka tidak - seseorang tidak duduk - enam lelaki pada dua orang, tahun, projek dan hanya mengetuk satu bersama. Ia tidak berfungsi seperti itu. Keupayaan pengoptimuman secara beransur-ansur berkembang, dan ia memerlukan banyak pertumbuhan. Bagaimanapun, mari bincangkan latar belakang pangkalan data. Nah, ada banyak sekali yang dikatakan mengenai pangkalan data NoSQL sekarang, dan terdapat banyak semangat untuk pangkalan data grafik. Dan penggunaan SQL melalui Hadoop dan perkara-perkara seperti itu. Tetapi, hakikatnya ialah jika anda mahukan pangkalan data sekarang, jika anda mahu yang berfungsi sepenuhnya, mampu OLTP dan trafik pertanyaan besar, ia adalah pangkalan data relasional, atau tidak.

Di antara pangkalan data hubungan, Oracle dominan dalam populariti. Microsoft SQL Server, saya fikir, kedua. Mereka berdua mampu digunakan untuk OLTP dan beban kerja pertanyaan, tetapi sebenarnya anda tidak boleh lari dengan mencampurkan beban kerja tersebut. Anda memerlukan insiden yang berlainan untuk beban kerja OLTP dan beban kerja pertanyaan. Ada alternatif untuk SQL dan grafik. Kebanyakan syarikat menyeragamkan pada satu pangkalan data tertentu, sebab itulah - maksud saya selepas bertahun-tahun berjuang dengan semua pemain lain, Oracle menjadi yang paling dominan. Hanya kerana mereka akhirnya dapat menjual lesen korporat, dan oleh itu syarikat hanya akan menggunakan produk alternatif dalam produk yang luar biasa, Oracle tidak akan melakukannya. Dan pangkalan data adalah strategik kerana mereka juga berkembang. Dan anda tahu saya melakukan sedikit penyelidikan untuk pembentangan ini, dan ia jenis - saya akan datang ke sini seketika, tetapi agak menarik bagaimana mereka berkembang, dari segi melihatnya dari kedudukan DBA. Inilah yang saya sebut trend tak kelihatan. Itulah undang-undang Moore cubed. Ini adalah seperti berikut: Pangkalan data terbesar, dan pangkalan data baru, tidak ada pangkalan data lama yang mendapat lebih banyak data untuk menelan. Ia biasanya pangkalan data yang sedang digunakan untuk masalah baru. Dan mereka sebenarnya berkembang dari segi jumlah data. Kasar di kubus Moore undang-undang. Jadi undang-undang Moore adalah faktor sepuluh kali setiap enam tahun. VLDBs cenderung berkembang menjadi seribu seribu setiap enam tahun. Pada tahun 1991, 1992, pangkalan data besar diukur dari segi megabait. Dalam '97 dan '98, gigabait. 2003, '4, terabytes. 2009, '10, anda mula melihat pangkalan data petabyte. Saya fikir terdapat satu atau dua pangkalan data exabyte di luar sana sekarang, tetapi yang terbesar yang saya dengar adalah 200 petabytes pada masa itu, dan anda tahu, tidak mendapat data ke pangkalan petabyte. Tetapi, kebanyakannya akan menjadi syarikat web 2.0 besar baru, mungkin, anda mempunyai Facebook menuju ke arah itu.

Bagaimanapun, jika anda benar-benar melihatnya, menjangkakan pangkalan data untuk melewati jenis peningkatan dalam jumlah itu, ia banyak bertanya. Dan, dengan pasti, sehingga tahap petabyte, mereka seolah-olah telah melakukan dengan baik. Maksud saya, saya bercakap tentang produk yang lebih tua dan bukan sesuatu yang baru. Mereka seolah-olah telah melakukan yang sangat baik. Jika kita melihat prestasi pangkalan data, kesesakan, ini membawa saya kembali ke masa yang saya benar-benar digunakan untuk mengambil berat tentang mereka, dan terpaksa bimbang tentang mereka. Anda tahu ini pada dasarnya pecahan perkakasan. Terdapat kemacetan CPU, mungkin, terdapat kesesakan memori, mungkin, terdapat kemunculan cakera, mungkin. Ia boleh menjadi rangkaian yang menyebabkan kesedihan anda, dan anda juga boleh mendapatkan masalah dengan mengunci, bergantung kepada apa yang anda lakukan, tetapi biasanya itu kerana program itu tidak tahu siapa yang hendak memanggil kunci. Oleh itu, jika anda akan mengada-adakan pangkalan data, anda sebenarnya cuba menalainya supaya ia menari di antara lima kesesakan yang mungkin dan boleh dilakukan. Dan itu bukan perkara yang mudah, kerana jumlah memori yang dapat anda atur pada mana-mana pelayan yang diberikan dinaikkan secara dramatik. Kemudian CPU telah menjadi multicore, cakera, sekarang kita boleh lakukan, saya fikir, walaupun pada pelayan komoditi, saya rasa anda boleh melakukan beratus-ratus dan ratusan terabytes, seperempat petabyte, mungkin, bahkan pada pelayan komoditi. Jadi, dari semua perkara ini, anda boleh bermain dengan, tentu saja rangkaian boleh pergi pada kelajuan yang berbeza, tetapi kebanyakannya apabila anda berhadapan dengan pangkalan data, anda benar-benar ingin mempunyai kabel serat antara pelayan dan tidak ada yang berjalan di atasnya, khususnya Jalan itu.

Faktor-faktor prestasi pangkalan data. Maksud saya, saya meninggalkan apa yang akan berlaku, kerana saya tahu Dez akan membincangkannya, tetapi reka bentuk pangkalan data yang buruk bermakna pangkalan data yang kurang baik. Reka bentuk pengaturcaraan yang buruk mungkin bermakna melemparkan SQL yang sangat bodoh di pangkalan data, yang hanya akan mengambil banyak sekali lagi. Kesimpulan dan beban kerja, terlalu banyak kesimpulan akan menyebabkan masalah kesesakan. Beban kerja, apabila anda mempunyai pertanyaan besar dengan pertanyaan yang sangat kecil, pendek, tajam, yang menyebabkan masalah. Ada masalah mengimbangi beban. Kebanyakan pangkalan data mengurusnya, tetapi jika anda tidak mendapat produk yang canggih, maka anda tahu, hanya menambah beberapa pelayan, bukan semua yang anda lakukan jika anda sebenarnya ingin meningkatkan saiz kumpulan. Anda sebenarnya perlu mengimbangi beban sebelum anda mendapat prestasi yang optimum. Anda perlu melakukan perancangan kapasiti. Sudah tentu. Terutamanya sekarang pada saat ini apabila jumlah data meningkat dengan lebih dramatik daripada yang digunakan untuk pangkalan data. Dan terdapat masalah lapisan data keseluruhan untuk cara anda menelan data, bagaimana anda memindahkan data. Tidak mendapat data pada pangkalan data tepat pada waktunya boleh menjadi isu prestasi di kemudian hari kerana kami telah pergi dari pangkalan data yang bekerja di Windows, hingga dua puluh empat oleh tujuh oleh tiga ratus tujuh puluh lima operasi dan tidak ada tingkap di mana anda dapat memperlambat pangkalan data ke bawah atau mungkin tidak akan ada masa kini.

Masalah DBA Oracle. Inilah yang saya fikirkan. Saya telah berada di DBA Oracle dengan Oracle 7, dan saya masih ingat bagaimana untuk menyesuaikannya. Dan jika anda benar-benar melihat Oracle sekarang, cara itu, cara - ia mempunyai cara, cara lebih banyak keupayaan. Ia mempunyai pengindeksan bitmap dan perkara-perkara seperti itu, tetapi saya benar-benar mengambil masa untuk melihat dan melihat berapa banyak parameter penalaan di sana sebenarnya berada dalam pangkalan data Oracle pada masa ini. Dan terdapat lebih daripada tiga ratus lima puluh parameter penalaan dan ada lagi 100 parameter tersembunyi, yang pakar DBA mungkin tahu tentang, tetapi Oracle DBA biasa tidak tahu tentang. Dan ini bermakna penalaan pangkalan data jenis ini adalah perkara yang sukar. Ia bukan satu perkara yang mudah sama sekali. Anda perlu merasakannya, anda perlu melakukannya untuk jangka masa yang panjang, dan anda perlu tahu dengan tepat apa masalah yang anda fikir anda sedang menyelesaikan, kerana penalaan bermula apabila prestasi menjadi lemah, tetapi ia mungkin tidak menjadi prestasi segala-galanya. Ini mungkin prestasi pertanyaan tertentu yang penting, dan anda mungkin dapat membetulkannya dengan mencantumkan data dan ingatan tertentu, atau mungkin perlu memperbetulkannya dengan pengindeksan, atau anda mungkin perlu mula melakukan pembahagian secara berbeza. Ada banyak perkara yang boleh anda lakukan, adalah titik. Jadi, akibatnya, mereka tidak akan melakukannya di kepala mereka - DBA memerlukan alat. Saya sekarang akan menyampaikan kepada Dez yang akan memberitahu anda mengenai pengindeksan, saya fikir.

Eric Kavanagh: Alright Dez, bawa ia pergi.

Dez Blanchfield: Terima kasih, Robin, dan saya suka halaman sampul surat. Saya rasa anda telah melontarkan tatu ke sana untuk saya datang bahkan datang jauh dari sesuatu yang menarik. Tetapi saya telah menggunakan imej galaksi kecil kita, memandangkan pandangan saya mengenai apa yang cabaran hari ini untuk pentadbir pangkalan data telah berubah, kerana ini adalah gambaran mental yang saya cenderung untuk menyamar ketika saya masuk ke alam sekitar dan saya tidak lagi dalam dunia mentadbir pangkalan data atau merekabentuk pangkalan data pada tahap itu lagi. Tetapi, seperti diri anda, Robin dan saya telah bertahun-tahun terlibat dalam dunia pangkalan data, sama ada sebagai pentadbir atau pemaju, atau akhirnya arkitek, dan kemudian menyedari bahawa saya boleh melakukan perkara yang lebih baik untuk mendapatkan kerak. Tetapi ia cenderung merasakan seperti anda sedang memandang galaksi data ini, dan lebih-lebih lagi pada hari ini, apabila kita pergi, seperti yang digariskan, kita telah pergi dari megabait ke petabytes dan exo-skala dalam masa yang sangat singkat, dalam skim besar perkara. Tetapi frasa yang ada dalam fikiran saya ialah, indeks pangkalan data kini menjadi seni hitam dan mereka bukanlah semacam jenis barang yang semata-mata manusia semacamnya memasuki, untuk aplikasi perniagaan gred perusahaan dan jenis perumusan anda hanya bercakap. Tetapi, saya mahu melalui sekumpulan ringkas jenis sejarah yang saya ada dengan dunia pangkalan data dan membawa kepada konteks di mana kita akan membuat kesimpulan untuk, dan kemudian melalui beberapa bahan hari ini dengan rakan-rakan kami di IDERA, kerana saya fikir ada banyak pemikiran yang berbeza mengenai bagaimana untuk mendapatkan penalaan prestasi pangkalan data dan salah seorang daripada mereka membuang timah pada perkara itu. Untuk banyak kedai yang saya jumpai, mereka selalu tidak sampai ke tahap melakukan penalaan prestasi pada lapisan pangkalan data dan terutamanya lapisan indeks sehingga mereka dapat melalui laluan keras pemikiran mereka boleh membuang penala di sana .

Banyak orang hanya mengambil pendekatan besi besar, dalam fikiran saya, dan saya mendapat gambar The Flash di sini kerana jika anda pernah melihat mana-mana filem lama atau pastinya pameran TV terkini dengan The Flash, seperti dalam Flash Gordon adalah watak lama, dan sekarang dia dipanggil "The Flash, " dia cenderung untuk pergi sangat, sangat cepat dan selalu tenaganya habis. Dan inilah yang berlaku apabila anda melemparkan besi besar pada prestasi pangkalan data. Selalunya, dalam pengalaman saya, anda boleh meletakkan prestasi tinggi, kerja keras dalam permainan, anda boleh mengoptimumkan sistem operasi anda dan menyesuaikannya ke titik tertentu. Anda boleh memastikan bahawa anda mempunyai CPU multicore, multithreading yang cepat untuk membuat aplikasi berjalan dengan lebih cepat, anda boleh membuang banyak RAM di sana, anda boleh mempunyai backplanes tinggi, anda boleh pergi dari cakera keras untuk mengecas cakera keras ke keadaan pepejal, dan pelbagai storan prestasi tinggi. Dan walaupun sekarang, orang melontarkan perkara seperti flash dan NVMe di enjin pangkalan data mereka, memikirkan bahawa mereka akan mendapatkan masa login ini dua keuntungan prestasi. Dan selalunya mereka mendapat keuntungan. Tetapi, semuanya kembali kepada masalah penalaan prestasi asas yang sama. Banyak sambungan rangkaian latency yang rendah, supaya kluster berfungsi dengan cepat. Dan infrastruktur pangkalan data clustering, jadi anda mempunyai lebih daripada sekadar mesin yang melakukan semua kerja. Tetapi anda cenderung kembali kepada masalah prestasi asas yang sama, dan itu adalah membaca data. Data tulisan, adalah sebahagian besarnya, cabaran yang agak linear dan melainkan jika ia dilakukan dengan betul.

Dan kemudian kita mempunyai cabaran di dunia hari ini: Tidak semua pangkalan data dicipta sama. Terdapat pangkalan data dan "pangkalan data" quote-on-quote. Dan apabila kita berfikir tentang enjin pangkalan data, orang sering berfikir tentang suspek tradisional dan biasa kerana mereka berada di dunia SQL. Anda tahu, kami ada Oracle, dan Microsoft SQL Server, dan terdapat beberapa di sekelilingnya di dunia sumber terbuka dengan MySQL, yang kini dimiliki oleh Oracle, tetapi masih terbuka. Dan kemudian kita mendapat suspek yang tidak begitu biasa, enjin NoSQL, yang masih mempunyai masalah di sekitar pengindeksan dan pengurusan prestasi, dan saya tidak akan masuk ke dalamnya dengan banyak butiran, tetapi terdapat peningkatan jumlah ini perkara-perkara yang muncul setiap hari dan mereka melihat dan merasa seperti enjin pangkalan data dari sudut pandang pemaju dan dari sudut persembahan, tetapi mereka adalah sangat, haiwan yang sangat berbeza dan mereka mempunyai niche kecil mereka sendiri di dunia untuk mengukir sama ada prestasi dalam memori atau skala linear pada cakera. Tetapi inilah yang kelihatan seperti dunia dalam dunia pangkalan data. Ini adalah 2016, ini adalah versi tiga peta, oleh pelbagai orang yang menghasilkan peta lanskap yang berterusan seperti apa pangkalan data, dan ini adalah di mana ia - bahkan seorang arkitek pangkalan data yang lebih tinggi atau pentadbir pangkalan data boleh masuk akal daripada itu. Secara beratus-ratus, dan beratus-ratus, dan beratus-ratus membuat, model, pengeluar pangkalan data yang berlainan, patuh SQL yang selalu berlaku. Dan yang menarik ialah, mereka semua kembali kepada cabaran yang sama. Prestasi dan penalaan prestasi di sekitar enjin pangkalan data, dan terutamanya dengan cara data diindeks.

Oleh itu, mari kita segera menutup pengindeksan pangkalan data, kerana topik ini menarik, dan anda perlu masuk ke dalamnya dengan terperinci dengan demo, saya percaya. Tetapi, saya fikir ia diterima dengan baik dan amalan industri piawai bahawa penalaan prestasi indeks pangkalan data adalah di mana dunia bermula dan berakhir sejauh memastikan data anda dapat diakses dengan pantas dan cepat. Tetapi apakah pengindeksan pangkalan data? Jika kita berfikir tentang pengindeksan dalam bentuk yang kita digunakan sebagai manusia setiap hari, fikirkan halaman indeks dalam buku. Jika anda ingin mencari sesuatu di dalam buku - terutamanya seperti ensiklopedia, atau sesuatu seperti bahan rujukan dalam beberapa bentuk - jika anda mencari sesuatu seperti halaman ini, di mana saya mencari perkara seperti topik empangan dalam ensiklopedia. Saya ingin mencari setiap rujukan kepada empangan, tangkapan air dan kawasan pembesaran besar, buatan manusia pada umumnya. Saya akan pergi ke belakang, saya akan dapati dalam senarai abjad yang disusun mengikut huruf, A ke Z, kiri ke kanan, dan saya akan mencari D. Saya akan mencari perkataan "empangan" dan saya dapat melihatnya halaman 16, 38, 41 ada rujukan kepada mereka, dan kemudian saya boleh pergi ke halaman-halaman itu, saya boleh mengimbas ke bawah mata saya dan saya akan mencari rujukan kepada perkataan "dam." Ini pada dasarnya adalah konsep yang sama dalam pangkalan data, tetapi kini sains roket dalam banyak cara. Begitu begitu, dengan berkesan setiap pentadbir pangkalan data yang pernah saya kenali dengan baik, menganggap indeks menjadi alat tunggal yang paling kritikal untuk penalaan prestasi dalam mana-mana pangkalan data dunia, tanpa menghiraukan pengalaman mereka sejauh membuang timah kepadanya, atau sama ada kes itu.

Pada umumnya apabila kita bercakap mengenai pengindeksan pangkalan data, terdapat beberapa pendekatan yang biasa. Dan indeks pangkalan data yang lebih kompleks menjadi, semakin kompleks pendekatan untuk mengindeks data. Tetapi pada dasarnya apabila anda berfikir tentang mengindeks data - bayangkan kita mempunyai fail yang mempunyai senarai nama; mereka tidak boleh disusun mengikut urutan abjad. Mari kita bayangkan ada dua puluh dari mereka. Jika kita akan menyusun - jika kita akan mencari data dalam senarai itu, dari atas ke bawah, dan katakan ia adalah senarai nama. Jika saya memilih nama rawak dan saya mula tatal ke bawah senarai itu, dari atas ke bawah, dalam format linear dan senarai tidak disusun, terdapat dua kriteria yang saya fikirkan sebagai masa carian purata saya dan masa carian maksimum saya - dan Saya mendapat typo dalam baris kedua, harus "waktu pencarian maksimal, " maaf - tetapi waktu pencarian purata saya pada dasarnya N ditambah satu, dibahagikan dengan dua, dan itu secara purata, saya memerlukan lima puluh persen waktu untuk mengimbas dari bahagian atas senarai, ke bahagian bawah senarai untuk mencari apa-apa perkara rawak dalam senarai itu. Dan baris kedua di sana, di bawah linear, haruslah "waktu pencarian maksima." Tetapi waktu pencarian maksimum pada dasarnya adalah jumlah item, dan itu jika saya mempunyai senarai dua puluh perkara, paling banyak masa saya dapat untuk mencari sesuatu dalam pangkalan data itu adalah untuk pergi dari atas ke bawah, yang katakan 20 item dalam contoh mudah ini. Dan ia adalah proses yang sangat perlahan dan tidak ada cara untuk menyesuaikan prestasi itu. Dan kemudian, ada jenis cara lain untuk mengambil data itu dan membuat indeks, yang secara ringkas merupakan senarai pendek petunjuk ke mana data sebenar adalah, seperti binari, B-pohon, bitmap, hashing, berkelompok dan bukan berkelompok, dan kemudian terdapat pelbagai jenis data seperti ruang, ditapis, XML dan teks penuh.

Perduaan adalah satu perkara biasa digunakan untuk perkara-perkara di mana data meminjamkan kepadanya. B-tree mungkin satu-satunya yang paling umum dalam pengertian umum, dalam sejarah, kerana ia adalah satu cara yang biasa untuk menyusun indeks kepada sebarang bentuk data dan membolehkan pembalak, pilihan, dan penyisipan dan penghapusan relatif mudah kerana anda memindahkan petunjuk di sekeliling rujukan kepada pointer, mata. Terdapat jenis lain, seperti bitmap, di mana jenis data membimbangkan seperti jika kita mempunyai pelbagai bentuk yang berkaitan. Hashing berfungsi dengan baik untuk objek besar, terutamanya blog dan imej. Dan anda dapat melihat bahawa terdapat beberapa jenis pendekatan saintifik, pendekatan matematik, untuk mengindeks data. Bagi manusia semata-mata, mereka adalah cabaran yang menarik untuk dibincangkan di peringkat ini. Apabila anda membincangkannya di peringkat prestasi untuk pentadbir pangkalan data, mereka benar-benar menjadi ahli sains roket dan orang yang mendapat darjah di dalamnya, dan saya tahu bahawa Doktor Robin Bloor pastinya telah melakukannya, dan buku-buku bertulis untuk orang seperti IBM dan jenama besar lain sejak beberapa dekad lalu. Oleh itu, pandangan saya adalah bahawa kita sebenarnya telah melepasi masa di mana, anda tahu sekali pada satu masa saya secara peribadi dapat duduk di hadapan sistem dan saya akan dapat menariknya dan menunjukkan kepada anda betul-betul di mana isu-isu prestasi berada di baris arahan atau di alat permulaan antara pengguna grafik dan mula menyelidiki data dan memberitahu anda di mana isu-isu itu, dan membina indeks, atau sub-indeks, atau indeks utama dan menengah ke dalamnya data dan mula menggunakannya untuk mencari sesuatu. Tetapi apabila anda berfikir mengenai landskap itu saya menunjukkan kepada anda, di mana kami mempunyai beratus-ratus dan beratus-ratus jenama, membuat dan model, dan pengeluar dan jenis pangkalan data, kami dengan baik dan benar-benar melewati masa sekarang, di mana manusia boleh membuat rasa jenis enjin pangkalan data yang kita ada. Khususnya, walaupun kita kembali kepada orang-orang seperti Oracle, jenama utama hari ini dalam platform pangkalan data relasi.

Bilangan pangkalan data yang perlu ditangani sama ada dari platform proprietari seperti ERP atau HR atau sistem kewangan, atau sama ada ia adalah platform yang dibina di rumah untuk pelbagai sebab, bilangan pangkalan data dan jadual pangkalan data dan rekod yang kita berakhir Berurusan dengan hanya astronomi dan anda secara fizikal tidak boleh melakukannya dengan tangan. Dan kami mempunyai komplikasi tambahan sekarang, di mana sekali lagi, pelayan pangkalan data mungkin hanya duduk di bawah meja anda. Anda tahu, sebagai anak muda selepas sekolah, saya pernah pergi dan bekerja pada perisian pangkalan data pada asalnya, Apple IIes dan kemudian sistem berasaskan PC DOS, seperti dBase II, dBase III, melalui era dengan mainframe dan pertengahan- julat dan juga VAX dan PDP dan fail log pada itu. Dan seperti Saber, dan akhirnya apabila beberapa pangkalan data SQL datang. Tetapi pada masa ini ketika kita memikirkan enjin pangkalan data, mereka kelihatan seperti sudut kiri bawah. Server pangkalan data bukan hanya satu mesin yang duduk di atas lantai di bawah meja lagi; beratus-ratus mesin yang menjalankan salinan enjin pangkalan data, dan kelompok, dan mereka membuat skala ratusan dan ratusan terabytes data, jika tidak petabytes data, yang beribu-ribu terabyte. Dan juga ekstrem, seperti yang disebutkan oleh Doktor Robin Bloor, bahawa beberapa kes penggunaan tertentu - syarikat penerbangan, agensi kerajaan khususnya - boleh sampai ke exabytes. Mereka masih agak niche, tetapi beratus-ratus terabyte dan juga puluhan petabytes tidak lagi luar biasa, terutamanya dari ledakan dotcom hingga kini, jenis apa yang kita panggil web 2.0 syarikat, seperti Facebook, Google, Yahoo dan sebagainya.

Kami juga mempunyai komplikasi sekarang bahawa perkara-perkara yang bergerak ke perkhidmatan luar. Kami mempunyai platform infrastruktur dan perisian sebagai pendekatan perkhidmatan yang menyediakan infrastruktur. Dan terutamanya perkhidmatan platform di mana kita tidak boleh membeli untuk orang-orang seperti Oracle dan platform awan, pangkalan data dan pelayan mereka. Dan ini membolehkan kami melakukan pembangunan aplikasi yang pesat dan hanya memasukkan pangkalan data kembali ke pelayan. Kita tidak perlu memikirkan apa yang ada di bawah hud. Kelemahannya, ialah kita sering tidak berfikir tentang bagaimana kita merancang dan melaksanakan pangkalan data kembali sehingga ia mula mencederakan dan prestasi menjadi masalah dan kemudian kita akhirnya perlu mencari alat yang tepat untuk mendiagnosis mengapa pangkalan data kita mencederakan dan di mana isu prestasi adalah. Dan selalunya ia membawa kembali kepada masalah biasa tentang bagaimana kami telah mengindeks data dan jenis indeks yang kami gunakan untuk data tersebut dan kemudiannya membawa kami kembali ke keperluan prestasi super. Dan seseorang yang mempunyai akses kepada sistem yang betul dan alat yang tepat untuk mempraktikkan enjin tersebut, dan mula mencari tempat yang panas dan melihat di mana pertanyaannya, di mana data bergerak, jenis pertanyaan, bagaimana pertanyaan itu disusun, siapa yang membuat pertanyaan, dan sama ada pertanyaan sedang disusun, dan harus di-cache. Apakah replikasi yang anda cari?

Oleh itu, kami dengan baik dan sungguh-sungguh - pada pandangan saya - pada masa ini di mana walaupun pakar pangkalan data terbaik di dunia, pada dasarnya arkitek pangkalan data kami dan pentadbir pangkalan data dan pangkalan pangkalan data kami, pada pandangan saya mereka sangat perlu untuk mula memanfaatkan alat yang betul untuk menyampaikan penunjuk indeks prestasi optimum untuk mana-mana enjin pangkalan data. Kerana skala yang kita hadapi dan kelajuan yang bergerak di atas, kita tidak boleh melakukannya dengan tangan, dan cuba melakukan itu selalu boleh memperkenalkan isu prestasi yang lain, kerana kita mungkin tidak mempunyai pengalaman dalam ruang itu kami cuba untuk menyelesaikan masalah. Dan saya percaya bahawa di mana kita akan menyerahkan kepada Bert, dan kita akan bercakap tentang bagaimana mereka menyelesaikan masalah ini yang pelbagai dan jenis perkara yang alat mereka boleh lakukan, terutamanya untuk dunia Oracle. Dan dengan itu di sana, Bert, saya akan menyampaikan kepada anda.

Bert Scalzo: Terima kasih. Selamat datang semua orang, nama saya Bert Scalzo, saya bekerja untuk IDERA. Saya adalah pengurus produk kanan untuk beberapa produk pangkalan data kami. Saya akan menunjukkan beberapa orang hari ini. Tetapi saya ingin bercakap tentang indeks, kerana saya bersetuju dengan semua yang dikatakan semua orang di sini, terutamanya slaid terakhir, indeks itu sangat rumit sekarang bahawa anda memerlukan alat, dan saya harap dapat meyakinkan anda. Jadi reka bentuk indeks Oracle, ia tidak semudah yang digunakan pada zaman dahulu. Banyak orang akan pasti diri mereka apabila mereka melihat pilihan, dan saya suka mengatakan ini bahawa saya menarik diri dari sejarah, "dalam perkara ini, satu-satunya kepastian, adalah tidak ada yang pasti." Dan begitulah saya jenis merasakan indeks hari ini, kerana walaupun anda fikir anda tahu jawapan anda harus mengindeks X, Y atau Z, anda benar-benar tidak pasti sehingga anda mencubanya, kerana pengoptimuman itu kadang-kadang berperilaku berbeza dengan cara yang anda harapkan. Dan sebagainya terdapat banyak percubaan dan kesilapan dengan reka bentuk indeks. Sekarang, pada zaman dahulu yang baik, jika anda memerlukan indeks di sana pada amnya hanya dua soalan, atau satu soalan. Adakah ia unik atau bukan unik? Dan anda mungkin memikirkan perkara-perkara lain seperti, "Berapa banyak indeks yang boleh saya maksimalkan pada satu meja?" Kerana terlalu banyak indeks memperlambat kemasukan, pembaruan dan penghapusan. Anda juga mungkin berada dalam sistem pangkalan data anda, mempunyai batasan pada berapa banyak lajur boleh berada dalam indeks pelbagai lajur, kerana kadang-kadang terdapat batasan berdasarkan pada halaman atau ukuran blok enjin pangkalan data anda, tetapi dalam kenyataannya itu cukup mudah kembali pada zaman dahulu yang baik. Anda sama ada diindeks atau anda tidak. Dan benar-benar, semuanya berada dalam pokok B. Kami boleh membiarkan pendua atau tidak, dan itu sahaja. Kehidupan adalah baik, kehidupan adalah mudah.

Nah hari ini, kehidupan tidak begitu baik atau sangat mudah. Saya telah meletakkan tanda Ghostbuster merah menerusi cara kami lakukan, kerana sekarang kami mempunyai B-tree versus bitmap, berbanding bitmap join. Dan saya akan menerangkan beberapa perkara ini dalam sekejap. Berkelompok dan tidak berkumpulan, unik atau pendua, ke hadapan atau terbalik perintah, berasaskan fungsi, dibahagikan atau tidak dibahagikan. Sekiranya terdapat pembahagian yang terlibat, apakah pembahagian global atau tempatan? Saya akan menjelaskannya juga. Dan kemudian juga ada sesuatu yang dipanggil meja teratur yang diindeks. Dan sebenarnya ada setengah dozen orang lain yang saya telah tinggalkan dari sini, kerana saya fikir saya sudah cukup di sini sekarang yang harus meyakinkan anda bahawa indeks adalah lebih sukar daripada yang mungkin anda fikirkan. Dalam slaid ini, saya akan memulakan bahagian rajah atas dan saya mempunyai jadual. Dan perkara pertama yang perlu saya buat ialah, bergantung kepada versi pangkalan data anda dan vendor pangkalan data anda, adakah mereka membenarkan jadual objek atau mereka hanya hubungan? Saya akan turun ke sebelah kanan dan mengatakan bahawa kita sedang membina meja hubungan. Sekarang, soalan yang perlu saya tanya sendiri ialah, ada dalam kelompok? Dan ramai yang telah melakukan Oracle untuk beberapa waktu akan ingat bahawa kelompok telah kembali untuk Oracle 6 hari. Mereka mungkin tidak terlalu banyak digunakan hari ini, tetapi biarlah saya turunkan cawangan itu terlebih dahulu.

Sekiranya saya akan meletakkan jadual saya dalam kelompok, saya perlu mempunyai indeks berkumpulan di atas meja itu. Sekarang, di Oracle, apabila anda mengepak meja, anda pada asasnya menyimpan baris atau barisan yang berdekatan antara satu sama lain di mana nilai-nilai itu serupa. Oleh itu, anda perlu mempunyai indeks cluster dan indeks cluster yang boleh dibahagikan. Dalam erti kata lain, tidak ada sebarang kaedah pembahagian untuk bagaimana anda akan melakukan jadual berkumpulan. Ia tidak boleh dibahagikan. Dan kerana ia tidak dipartisi, ia adalah global. Saya akan menerangkan apa yang berlaku dalam masa sejam. Dan ia sentiasa B-pokok. Dengan kata lain, apabila saya turun cawangan itu, ia agak mudah, saya tidak mempunyai banyak pilihan. Sekarang, jika saya melakukan indeks bukan berkumpulan di meja berkumpulan, yang dibenarkan dalam beberapa versi, sekali lagi ia tidak dipartisi; apabila ia tidak dibahagikan, maka satu-satunya pilihan anda adalah global. Dan sebagainya, terdapat pilihan B-pokok atau bitmap. Sekali lagi, ia bergantung kepada versi pangkalan data anda. Tetapi sekarang, mari kita kembali ke meja relasional dan mula turun ke kanan sekali lagi dan sekarang kita akan mempunyai jadual biasa, lama, biasa, dan jadual: relasi. Ia akan berada dalam ruang jadual. Saya semacam turun ke kanan di sini dahulu. Oleh itu organisasi itu, tumpukan. Soalan seterusnya yang saya perlu bertanya kepada diri sendiri adalah, "Adakah saya hendak memisahkan jadual ini atau tidak saya?" Sekarang, kadangkala anda akan memisahkan kerana anda berfikir, "Hei, pengoptimasi akan lebih bijak tentang bagaimana ia dapat mengoptimumkan pertanyaan. "Tetapi banyak DBA akan memberitahu anda bahawa sebab yang anda lakukan adalah untuk tujuan pentadbiran. Sekiranya anda mempunyai meja seratus bilion, jika anda memecahkannya ke dalam partition atau baldi, apabila anda ingin menambah data pada baldi yang terakhir, anda boleh turun dan indeks itu hanya beberapa juta baris. Anda boleh memasukkan data tersebut dan kemudian anda boleh membina semula indeks itu hanya pada baldi itu.

Walaupun ia adalah teknik yang baik untuk beberapa, teknik pengoptimuman seperti penghapusan partition, nilai sebenarnya dapat mentadbir atau melakukan tugas pentadbiran pada bahagian yang lebih kecil. Apabila saya pergi ke timbunan organisasi, soalan pertama ialah, "Adakah saya memisahkannya atau tidak?" Mari pergi ke kiri, saya tidak akan memisahkan meja. Sekarang, ia mungkin kelihatan aneh apabila saya memberitahu anda ini, tetapi anda boleh mempunyai jadual yang tidak dipartisi dan kemudian anda tidak boleh memisahkan indeks seperti yang anda sudah biasa, atau anda boleh memisahkan indeks. Berhenti dan berfikir. Meja anda pada asasnya satu baldi, seperti yang anda selalu fikir, namun indeks anda akan mempunyai beberapa baldi. Bila itu berlaku, di mana terdapat ketidaksesuaian antara bilangan baldi dan meja, dan bilangan baldi dalam indeks, itulah yang dimaksudkan oleh global. Jadi, jika jadual tidak dibahagikan, dan jika indeks dipartisi, ia dianggap global, kerana terdapat ketidakcocokan. Sekarang, biarlah saya kembali pada timbunan organisasi saya, dan turun ke bahagian partition. Sekarang, jika saya mempunyai jadual partition, dan katakan jadual itu mempunyai empat baldi, empat partition, indeks saya boleh mempunyai empat baldi supaya indeks saya sepadan dengan reka bentuk jadual saya. Dan sebagainya sudah berakhir, di atas, di sebelah kanan. Itu akan dianggap sebagai tempatan. Indeks tempatan bermaksud pada dasarnya bahawa pemisahan jadual dan indeks dilakukan dengan cara yang sama dan mempunyai bilangan baldi yang sama. Dan kemudian apabila saya mempunyai indeks tempatan, ia boleh menjadi pokok B atau bitmap, dan anak panah hijau yang jenis itu naik, menunjukkan bahawa walaupun ia adalah pokok B, masih ada pilihan yang boleh dibuat. Ia boleh berasaskan fungsi. Dan juga, jika bitmap itu, terdapat beberapa jenis bitmap. Ada sesuatu yang disebut indeks gabungan bitmap. Jika anda melakukan pergudangan data, itulah jenis indeks yang sangat popular untuk skema atau reka bentuk bintang. Apa yang berlaku ialah indeks itu mempunyai ID baris untuk apa yang ditunjukkan di dalam jadual, tetapi ia juga akan mempunyai ID baris untuk jadual induk supaya apabila anda - anda perlu membuat reka bentuk skema bintang dan anda sedang mencari pada jadual fakta, indeks pada jadual fakta menunjuk anda ke data yang anda minati, dan menunjuk anda ke setiap baris dalam dimensi anda, sehingga anda hanya perlu mempunyai satu indeks.

Dan sebenarnya, ini menjadi kerana Red Brick, yang merupakan pangkalan data banyak tahun yang lalu - banyak orang mungkin ingat bahawa. Oleh itu, jika anda melihat gambar ini - dan ingatlah saya tidak meletakkan segala-galanya dalam gambar ini kerana gambar itu akan menjadi lebih besar - masih ada isu tambahan, yang saya ada dalam teks di sini di bahagian atas kanan . Adakah indeks tempahan terbalik? Dan anda mungkin berkata, "Mengapa saya mahukan indeks pesanan terbalik? Itu tidak masuk akal. "Nah jika anda berada dalam persekitaran yang berkelompok di Oracle, jika anda melakukan kluster aplikasi sebenar, jika anda menyimpan indeks anda secara teratur, maka tidak diterbalikkan, jika anda mempunyai banyak pemprosesan yang memukul nilai yang sama atau nilai indeks yang sama, apa yang akan berlaku ialah, anda akan mempunyai kawasan panas di B-pokok anda. Bermaksud bahawa anda akan mempunyai pertengkaran dan mungkin mengunci untuk mencuba dan mengakses barang-barang itu, dan anda akan melakukan itu melintasi node dalam rangkaian. Nah, jika anda memasukkan indeks pesanan terbalik, kini anda boleh membatalkannya. Anda boleh berkata, "Nah, nilai-nilai yang sama adalah di bahagian-bahagian yang berlainan pokok, jadi saya tidak mempunyai nod berasingan saya bersaing untuk kawasan panas di pokok itu." Dan kemudian perhatikan juga bahawa unik tidak berfungsi dengan beberapa pilihan . Jika anda melihat, saya telah berjumlah tiga, lima, lapan dan sebelas, jadi terdapat beberapa kes di mana saya tidak boleh mempunyai indeks yang unik. Begitu juga, terdapat beberapa kes di mana saya tidak boleh mempunyai indeks terbalik, dan kemudian ada isu tambahan seperti pembalakan atau pembalakan, dan selari dan tidak selari. Saya boleh menetapkan perkara-perkara ke kawasan tertentu dalam ingatan.

Dan ini meninggalkan masih banyak ciri dalam Oracle. Saya akan mengatakan bahawa apabila anda melihat Oracle 12, mungkin ada lagi satu setengah lagi perkara yang boleh saya tambahkan pada gambar ini. Pengindeksan benar-benar rumit dan saya benar-benar bersetuju dengan penceramah terdahulu, untuk menavigasi dan membuat pilihan yang baik, anda memerlukan alat. Anda sememangnya memerlukan, mungkin, gambar seperti ini, dan sejenis metodologi tentang cara anda memilih sesuatu dan semoga alat ini akan membantu anda ke sana. Dan kemudian ia akan menjadi percubaan dan kesilapan. Saya sentiasa memberitahu orang ramai tentang pengindeksan, "lihat sebelum anda melompat." Dan kemudian anda dapat melihat anjing kecil di sini, dia melompat tanpa melihat, dia akan berakhir dengan air dengan yu, atau lelaki itu bersedia untuk melompat ke dalam air, dan dia akan melambungkan diri. Anda perlu memikirkan pengindeksan anda, kerana mewujudkan indeks tidak selalu bermakna perkara menjadi lebih baik. Malah, mewujudkan indeks boleh memperlahankan sesuatu. Dan prestasi pertanyaan boleh menjadi urutan magnitud yang lebih baik dengan satu pilihan berbanding yang lain. Dan saya akan memberi anda contoh yang baik. Jika anda melakukan skema reka bentuk bintang, dan pada jadual dimensi anda anda menggunakan indeks bitmap dalam satu kes, dan dalam kes lain anda berkata, "Saya akan menggunakan indeks B-tree, " anda mempunyai bitmap berbanding B- pokok. Saya boleh memberitahu anda bahawa satu penyelesaian akan menjadi satu perintah magnitud atau mungkin beberapa pesanan magnitud lebih cepat daripada yang lain. Tetapi perlu diingat apa yang berfungsi dalam satu persekitaran, seperti dalam persekitaran pergudangan data, mungkin bukan pilihan yang baik dalam persekitaran OLTP.

Contohnya, jika anda mengambil jadual urus niaga, dan meletakkan indeks bitmap pada jadual urus niaga, ia adalah mahal untuk mengira dan menetapkan semula bitmaps, rentetan panjang ini, dan sebagainya dalam jadual OLTP, anda boleh memukul meja dengan begitu banyak sehingga bitmap indeks boleh menjadi korup dan melambatkan sistem anda kerana ia tidak dimaksudkan untuk kemas kini. Mereka hebat untuk akses pantas, tetapi tidak baik untuk kemas kini. Saya fikir indeks mengambil percubaan dan kesilapan. Tidak ada peraturan emas lagi - ada terlalu banyak pembolehubah yang berlainan dalam persamaan ini untuk mengetahui - dan pada akhirnya anda perlu melihat pelaksanaan atau menerangkan rancangan dalam pangkalan data anda untuk melihat sama ada anda membuat pilihan yang baik atau tidak. Dan kadang-kadang, analisis pelan hampir boleh menjadi sains kepada dirinya sendiri. Saya tidak akan menutup hari ini - itulah topik lain - tetapi jangan mengambil reka bentuk indeks untuk diberikan. Terdapat sebab-sebab yang sah mengapa terdapat semua jenis indeks gila yang saya menunjukkan kepada anda, dalam gambar terdahulu, dan pembicara terdahulu bercakap tentang. Ini bukan hanya dibuat kerana ia adalah ciri yang kemas untuk meletakkan senarai semak di suatu tempat untuk vendor pangkalan data; terdapat kes-kes atau senario penggunaan di mana indeks-indeks ini penting dan akan membawa perbezaan yang ketara. Sekarang dengan itu, saya akan menunjukkan kepada anda beberapa contoh pelbagai indeks dalam salah satu alat kami. Biar saya dapatkan skrin saya supaya anda dapat melihatnya. Okay, jadi di sini saya duduk di dalam - biar saya meminimumkan permohonan ini. Saya duduk di dalam VMware dan saya menjalankan Windows Server 2012 VM.

Dan anda dapat melihat, saya mempunyai hampir setiap alat yang diketahui oleh manusia. Sebagai pengurus produk, saya perlu mengetahui persaingan saya, jadi bukan hanya alat apa yang saya ada, tetapi apa yang dilakukan pesaing saya? Dan kami mempunyai alat ini di sini yang dipanggil DBArtisan, yang saya sudah lari, tetapi saya akan pergi - jadi saya hanya akan membawanya. Dan apa yang anda dapat lihat, ini adalah alat yang sangat bagus, kerana bukan harus digunakan, katakan pengurus perusahaan untuk Oracle dan SQL Management Studio untuk SQL Server, dan MySQL Workbench untuk MySQL, dan dua belas pangkalan data lain yang kami dukung, baik saya punya semua pangkalan data saya dibina ke dalam satu alat ini. Terdapat DB2, terdapat MySQL, Oracle, Postgres, SQL Server dan Sybase, dan itu sahaja - saya hanya mempunyai enam pangkalan data dalam hal ini kerana saya tidak boleh - alat ini menyokong dua belas pangkalan data tetapi saya miskin VM, menjalankan enam pangkalan data secara serentak, dan cuba untuk melakukan demo, adalah kira-kira sebanyak perkakasan saya akan memudahkan. Oleh itu, biarlah saya kembali ke Oracle sekarang, dan jika anda perhatikan, semua perkara ini adalah sama. Jika saya ingin mengukur prestasi saya dalam DB2, itu adalah pilihan yang sama yang saya dapati di Oracle. Sekarang di bawah penutup kami melakukan banyak perkara yang berbeza supaya anda tidak perlu tahu apa yang berlaku, tetapi kami memberi anda antara muka yang konsisten supaya anda boleh menjadi seorang pakar dengan pelbagai platform pangkalan data. Dan itu termasuk kerja dengan indeks, topik perbincangan ini.

Biarkan saya masuk ke sini dan biarkan saya mulakan dengan melihat beberapa jadual, dan saya mendapat pangkalan data filem yang hanya mempunyai beberapa jadual. Dan jika saya melihat jadual tertentu, seperti jadual pelanggan, apabila saya membawanya ke sini, saya dapat melihat reka bentuk meja saya, di sini adalah lajur saya di dalam jadual saya, dan maklumat ini mengenai setiap lajur. Saya mempunyai ciri-ciri untuk jadual, tetapi perhatikan bahawa saya mempunyai tab di sini untuk indeks dan saya dapat lihat di sini adalah indeks di atas meja. Perhatikan bahawa salah satu daripada indeks ini adalah indeks PK saya, kunci utama saya. Ini yang lain kelihatan hanya sebagai indeks untuk meningkatkan akses pertanyaan, mungkin kami bertanya dengan nama pertama, atau nama belakang, atau kami melihat telefon dan kod zip. Dan jika saya memilih indeks tertentu, seperti kod zip di sini, dan saya klik dua kali, sekarang saya dapat melihatnya, hey, itu bukan indeks yang unik dan di sini adalah beberapa jenis lain, bitmap, tidak unik, unik, sama ada atau tidak disusun, sama ada atau tidak pembalakan itu, sama ada atau tidak ia adalah urutan terbalik, sama ada ia berfungsi sebagai asas. Oh, inilah yang menyeronokkan yang saya tidak tutup. Anda sebenarnya boleh mempunyai indeks yang tidak dapat dilihat. Dan anda akan berkata, "Baiklah, kenapakah saya mahu melakukan indeks yang tidak kelihatan?" Baiklah, saya akan memberi anda contoh yang baik. Anda berada dalam sistem pengeluaran anda dan anda mempunyai masalah prestasi dan anda tidak pasti membuat indeks akan membetulkan masalah itu, jadi anda tidak mahu membuat indeks dan memperlahankan pengeluaran, tetapi entah bagaimana atau yang lain yang anda mahu boleh mengujinya. Anda boleh membuat indeks dalam pengeluaran sebagai tidak kelihatan, yang bermaksud tidak banyak kod aplikasi, memanggil pengoptimal, akan menggunakan indeks itu. Ia telah dibuat, ia sah, tetapi ia tidak akan digunakan. Kemudian, anda boleh membuat pertanyaan yang anda fikir bahawa indeks ini akan membantu, atau beberapa pertanyaan, dan anda boleh melekatkan tanda dan berkata, "Hei, pengoptimal, ada indeks yang tidak kelihatan di sana saya ingin anda gunakan dan biarkan saya tahu sama ada saya telah membuat perkara yang lebih baik. "Dan sekarang saya telah menguji sesuatu dalam pengeluaran, tetapi saya tidak memecahkan aplikasi dalam pengeluaran yang sedang berjalan. Itulah penggunaan indeks yang tidak kelihatan. Ia berbunyi bodoh apabila anda mula-mula mendengar tentangnya, tetapi ia mempunyai penggunaan.

Kita juga boleh, pada indeks, menentukan sama ada ia selari, dan juga berapa banyak contoh yang selari dengannya. Sekarang, dalam persekitaran cluster aplikasi bukan cluster atau tidak nyata, jadi tidak rapi, selari akan bererti berapa banyak sub-proses yang dapat query saya muncul untuk dicoba, dan proses pekerja, untuk mencuba dan mendapatkan sesuatu melalui lebih pantas atau lebih cepat . Contohnya, jika saya berada dalam gugusan permohonan sebenar, katakan saya mempunyai sepuluh nod, berapa banyak nod yang saya boleh membahagikan kerja itu? Mungkin ia adalah empat dari sepuluh, dan pada masing-masing, empat sub-proses. Itulah contohnya. Dan kemudian kita mempunyai pemampatan utama. Anda sebenarnya boleh memompatkan indeks? Ya atau tidak. Dan kemudian sudah tentu anda mempunyai parameter penyimpanan anda yang boleh anda tentukan pada indeks. Sekarang, saya tidak menutupnya kerana mereka benar-benar lebih banyak parameter penyimpanan berbanding isu indeks. Dan akhirnya, kita mempunyai sama ada atau tidak untuk membuat partitioned atau non-partitioned ini. Biarkan saya turunkan di sini selama satu saat. Saya akan pergi ke skema yang berbeza. Ini adalah skema bintang dan, sebagai contoh, jadual tempoh ini adalah jadual dimensi. Jika anda pernah membuat reka bentuk skema bintang, anda biasanya mempunyai dimensi untuk masa dan dalam pangkalan data ini dan skema bintang ini, tempoh adalah dimensi masa. Sekarang, saya tahu ia akan kelihatan lucu, anda akan berkata, "Gee, lihat semua lajur itu - adakah lelaki itu pernah mendengar normalisasi?" Nah, apabila anda berada dalam gudang data atau reka bentuk skema bintang, anda Biasanya anda tidak mempunyai jadual yang biasa dilihat orang dan berkata, "Ini, ini tidak direka dengan baik." Tetapi itulah cara anda melakukannya dalam persekitaran pergudangan data.

Sekarang, lihat apa yang akan berlaku kerana, okay, ada semua lajur ini, perhatikan itu, saya mendapat indeks pada setiap lajur tunggal. Sekarang, dalam persekitaran OLTP yang akan menjadi no-no. Ia akan melambatkan semua operasi saya. Dalam persekitaran pergudangan data, saya akan menggugurkannya semasa kitaran beban batch saya. Beban tanpa overhead atau indeks, dan saya akan mencipta indeks. Dan sekiranya saya memisahkan jadual saya, maka saya harus menggugurkan indeks untuk setiap baldi di dalam jadual, saya hanya dapat menjatuhkan indeks pada baldi atau baldi di mana data akan berlaku semasa kitaran beban kumpulan itu. Dan kemudian ciptakan semula bahagian indeks untuk baldi tersebut. Dan menjadikannya sangat mudah diurus. Dan jika saya melihat - jadi inilah lajur yang disebut "Bendera Holiday" dan pada dasarnya itu ya atau tidak. Perhatikan bahawa ini adalah indeks bitmap, dan bagi kebanyakan anda anda akan berkata, "Nah, itu masuk akal." Ya atau tidak, Y atau N, hanya terdapat dua nilai yang masuk akal. Dan kerana apabila anda membaca dokumentasi untuk indeks bitmap, mereka selalu memberitahu anda memilih sesuatu yang mempunyai kardinaliti yang rendah.

Sekarang mari saya pergi ke salah satu jadual fakta saya, jadi di sini kita ada pesanan saya. Dan inilah pesanan saya setiap hari. Dan anda akan melihat sekarang, sekali lagi saya mempunyai beberapa lajur, dan sekali lagi, saya akan mempunyai lebih daripada beberapa indeks. Dan di sini, kita mempunyai sesuatu yang dipanggil kod harga sejagat. Ini adalah untuk kedai runcit, jadi anda tahu kod bar kecil apabila anda membeli sesuatu di kedai, ini adalah kod harga sejagat. Sekarang, ada jutaan kod harga sejagat. Sekarang, bagi syarikat tertentu yang menjual barangan itu, mereka mungkin mempunyai kod harga sejagat sebanyak 1.7 hingga 2 juta, jadi anda akan menjangkakan bahawa ini tidak akan menjadi indeks bitmap kerana 1.7 juta nilai berbeza terdengar seperti kardinaliti yang tinggi. Tetapi dalam realiti, dalam persekitaran pergudangan data, anda mahu ini menjadi bitmap. Sekarang, beritahu saya mengapa. Nah, mungkin terdapat 1.7 juta nilai berbeza untuk kod harga sejagat ini, bilangan baris dalam jadual pesanan ini adalah beratus juta hingga berbilion baris. Indeks saya adalah kardinaliti yang rendah berbanding saiz atau kardinaliti jadual. Yang menjadikannya kardinaliti yang rendah. Itu menjadikan indeks bitmap berguna, walaupun ia bersifat counterintuitive dengan 1.7 juta nilai yang berbeza yang anda pilih bitmap di sini. Sekarang, jika saya tahu bahawa saya mahu menggunakan indeks gabungan bitmap, pada masa ini produk tidak menyokongnya, saya mendapat yang ditambah untuk pembebasan seterusnya, tetapi itu akan menjadi alternatif lain di sini. Dan dalam skema bintang, ingat, indeks bitmap akan berada di jadual fakta dan bahawa satu indeks di dalam B-pokok akan menunjuk pada baris dalam jadual fakta dan kemudian ke setiap baris yang jelas dalam jadual dimensi untuk fakta itu . Dan, anda mempunyai pilihan lain di sana. Jadi, mari kita lihat, saya ingin keluar dari jadual sekarang dan saya hanya ingin menunjukkan kepada anda dengan cepat bahawa saya mempunyai maklumat yang sama, di bawah indeks, dan saya akan melakukan perkara asas yang sama.

Sekarang, sebab saya membawa ini adalah anda mungkin dapat melihat, hei tidak ada kunci utama di sini. Kekunci utama dilakukan dengan kekangan utama, oleh itu ia sebenarnya diliputi oleh definisi kekangan. Ini akan menjadi indeks yang bukan sebahagian daripada kekangan. Sekarang anda mungkin berkata, "Baiklah, tunggu sebentar, yang mungkin kelihatan seperti kunci asing, dan kekunci asing adalah kekangan, " tetapi kekunci asing dan kebanyakan pangkalan data tidak secara automatik membuat indeks di lajur utama asing, walaupun ia dianjurkan, dan di sana anda pergi - saya mempunyai semua pilihan yang sama sekali lagi. Dan jika saya mahu menukar hanya untuk dimampatkan, saya boleh melakukannya.

Sekarang mampatan hanya berfungsi pada indeks B-tree. Apa yang membolehkan, apabila anda melihat pelbagai nod dalam B-tree, ia membolehkan pemampatan beberapa nilai. Ia benar-benar bukan pemampatan seperti pemampatan meja, ia adalah pemampatan daripada apa yang disimpan dalam B-tree di nod bukan daun. Ia tidak menjimatkan satu tan ruang, tetapi ia boleh membuat perbezaan. Dan dengan itu saya perhatikan bahawa, saya semakin dekat dengan masa, jadi apa yang saya mahu lakukan ialah, saya mahu kembali, dan menghentikan perkongsian saya. Dan, kami mempunyai produk kami di sana untuk percubaan selama empat belas hari di idera.com. Ia adalah produk yang cukup baik, terutamanya jika anda bekerja dengan pelbagai platform pangkalan data. Jika anda bekerja dengan dua atau tiga pangkalan data berbeza, alat ini akan menjadikan hidup anda lebih mudah. Kami mempunyai alat untuk membantu anda dengan reka bentuk dan pemilihan indeks, kami mempunyai alat yang disebut DB Optimizer. Saya tidak boleh menutup hari ini, itu akan menjadi terlalu banyak. Dan jika anda mahu menghubungi saya, ada alamat e-mel saya, atau anda boleh menangkap saya di e-mel peribadi saya, dan saya mempunyai blog, saya mempunyai laman web dan blog, dan profil LinkedIn di sana. Jadi, jangan ragu untuk menghubungi saya mengenai apa-apa, walaupun ia bukan produk yang berkaitan, jika anda hanya ingin membincangkan pangkalan data, saya geek di hati dan saya suka gab tentang technobabble.

Eric Kavanagh: Baiklah, baik Dez, Robin, saya pasti anda masing-masing mempunyai beberapa soalan sekurang-kurangnya, kami ada beberapa minit lagi di sini. Dez, apa pendapat anda?

Dez Blanchfield: Saya mempunyai satu soalan hebat yang saya perlu tanya kepada anda, ia telah duduk di belakang fikiran saya. Apakah senario paling ghairah yang anda lihat? Saya telah membaca blog anda, saya mengikuti anda dengan teliti, - anda, anda mungkin salah satu daripada beberapa orang yang tinggal hampir tidak mungkin, dan saya fikir Dr. Robin Bloor adalah yang kedua yang saya temui dalam seumur hidup saya. Tetapi, anda tahu, anda mungkin pernah melihat setiap senario gila, apakah beberapa senario paling ganjil yang anda lihat, yang anda jumpai, dan seperti manusia yang tidak dapat ditangani, anda telah berjaya berjalan dan melakukan helah minda Jedi dengan keseluruhan DBArtisan ini?

Bert Scalzo: Kami mempunyai pelanggan sekali yang, dalam reka bentuk pangkalan data mereka, mereka berfikir dengan sangat cara mereka akan berfikir dalam reka bentuk susun atur fail, dan sebagainya, apabila anda menormalkan pangkalan data, perkara pertama yang anda cuba lakukan ialah menyingkirkan daripada kumpulan yang berulang. Nah, mereka mempunyai lajur dan mereka membuatnya panjang, atau BLOB atau CLOB, dan di dalamnya mereka akan meletakkan nilai, nombor satu, titik koma, nilai nombor dua, titik koma, nombor nilai, koma bertitik, dan mereka akan mempunyai ribuan nilai di sana, tetapi mereka perlu mencari di ruangan itu dan mereka seperti, "Mengapa perkara ini berlari begitu perlahan?" Dan saya seperti, "Nah, anda tidak dapat membuat indeks mengenai apa yang anda lakukan, itu hanya tidak dibenarkan. "Jadi kita sebenarnya menunjukkan kepada mereka, menggunakan rancangan itu, bahawa apa yang mereka perlu lakukan adalah untuk menormalkan jadual itu. Bukan kerana normalisasi adalah beberapa latihan akademik yang menjadikan sesuatu lebih baik, tetapi kerana mereka mahu pertanyaan pada bidang itu, yang bermaksud mereka dapat mengindeksinya, dan Anda tidak dapat mengindeksinya pada kumpulan yang berulang, atau sekurang-kurangnya tidak mudah . Dan itu mungkin perkara paling buruk yang pernah saya lihat.

Dez Blanchfield: Ya, sangat menarik berapa kerap kamu jumpa, saya rasa cabaran dengan pangkalan data, orang lupa bahawa ia adalah sains. Dan ada orang yang melakukan ijazah dan PhD di seluruh ruang ini, menulis kertas di atasnya, dan anda telah menulis swag keseluruhan termasuk buku panduan TOAD anda dan perkara-perkara lain dari ingatan. Trend ke arah jenis "data besar" quote-on-quote sekarang - Saya melihat banyak orang yang melupakan asas-asas senibina pangkalan data dan teknologi pangkalan data, sains pangkalan data, jika anda suka. Apa yang anda lihat dalam bidang sejauh pergeseran dari platform pangkalan data tradisi dan pangkalan data tradisional yang berfikir bahawa kami secara berkesan mengepam ke tanah, dan itu hanya kes penalaan prestasi dan skala. Adakah anda melihat banyak orang belajar dan mempunyai pengalaman di mana mereka hanya duduk di sana dan mempunyai masa "a-ha", seperti detik eureka, di mana mereka menyedari, barang-barang data yang besar itu sebenarnya hanya jenis pangkalan data yang sangat besar? Adakah itu satu perkara di luar sana dan orang menjawab anda kembali dan jenisnya, "Kami lupa, apa yang kami tahu dan bolehkah anda membawa kami kembali dari sisi gelap?"

Bert Scalzo: Nah, tidak, dan ini mengerikan untuk menyesuaikan diri, tetapi vendor pangkalan data relasional telah minum Kool-Aid juga. Sekiranya anda masih ingat, saya tidak tahu, kira-kira sedekad yang lalu, kami mula meletakkan data yang tidak tersusun ke dalam pangkalan data relasi, yang merupakan perkara yang aneh untuk dilakukan, dan kemudian data, pangkalan data hubungan, kini menambah jenis NoSQL barangan. Sebenarnya, dalam Oracle 12, CR2 - saya tahu ia tidak keluar lagi - tetapi jika anda melihat beta, jika anda berada dalam program beta, ia menyokong sharding. Oleh itu, kini anda mempunyai pangkalan data relasi yang tidak menambah konsep dari Sharding NoSQL. Oleh itu, masa "a-ha" nampaknya lebih kepada orang-orang di sisi hubungan yang akan "a-ha." Tidak ada sesiapa yang akan melakukannya dengan betul lagi, bahkan pengurus pangkalan data, jadi kami telah mesti pergi dan menyertai bahagian gelap.

Dez Blanchfield: Betul, jadi anda mengatakan peralihan kepada banyak data yang kemas, jika saya faham betul, dimasukkan ke dalam, apa yang kita panggil platform data besar, yang agak lucu, kerana mereka bukan itu lama, tetapi tidak itu bermakna bahawa mereka memfokuskan semula apa yang mereka lakukan dengan pangkalan data hubungan mereka untuk mendapatkan lebih banyak bang untuk mereka?

Bert Scalzo: Tidak, biasanya, jika mereka mempunyai keperluan dalam - yang akan memetik "keperluan jenis data yang besar, " mereka mendapati bahawa bukannya harus pergi ke platform pangkalan data yang lain dan melakukan sesuatu dalam sesuatu yang tidak - cara yang berkaitan, vendor pangkalan data sekarang memberi mereka teknik yang tidak relasional yang sama di dalam pangkalan data hubungan mereka, untuk melakukan hal-hal tersebut. Contohnya, contohnya, jika anda mempunyai data yang tidak berstruktur, seperti jenis data JSON atau jenis data kompleks lain yang mempunyai makna yang tertanam dalam data itu sendiri, vendor pangkalan data tidak hanya menyokongnya tetapi mereka akan memberi anda ACID pematuhan terhadap data tidak berstruktur. Pangkalan data relasional telah memeluk teknik dan teknologi baru dan sebagainya, sekali lagi "a-ha" sepertinya tidak lebih daripada itu, "Hei kita, pemaju aplikasi, mempunyai sesuatu yang tidak diketahui dan kita perlu belajar sekali lagi, " itu "Hei, kami melakukannya dengan cara ini sekarang, bagaimana saya boleh melakukannya dengan cara dalam pangkalan data relasional anda dan lakukan seperti yang saya lakukan dalam pangkalan data ini di sini? "dan itu menjadi lebih umum, dan seperti yang saya katakan, vendor pangkalan data itu sendiri membolehkan itu.

Dez Blanchfield: Benar, yang merupakan suspek tradisional di ruang ini untuk alat DBArtisan dan itu? Saya melakukan beberapa kerja rumah mengenai apa yang anda tulis baru-baru ini, dan dari ingatan yang anda tulis sesuatu, saya fikir ia adalah salah satu blog anda, dalam prestasi pangkalan data yang melampau di dunia Oracle. Saya tidak ingat ketika itu, saya fikir ia adalah tahun ini dari ingatan, atau dari akhir tahun lalu, anda telah menulis perkara ini. Dan ia seolah-olah saya adalah suspek tradisional, biasa untuk jenis topik yang kita sedang bercakap tentang hari ini, di mana orang akan pergi ke persekitaran pangkalan data yang sangat besar dan mencari apa yang anda panggil keuntungan yang melampau di dalamnya. Siapa yang tersangka biasa yang anda lihat di sana yang mengambil DBArtisan dan meletakkannya untuk kegunaan yang baik?

Bert Scalzo: Nah, kami mempunyai ramai pelanggan, pada hakikatnya, hari ini saya mempunyai agensi kerajaan yang sangat besar - dan mereka mungkin hampir dengan 1, 000 salinan perisian kami, kerana ia membolehkan orang berfokus pada apa yang mereka ' semula lakukan, dan bukan bagaimana untuk melakukannya. Dan tidak apa-apa, maksud saya, setiap orang perlu tahu bagaimana melakukan sesuatu, tetapi produktiviti mendapat "apa" dilakukan. Jika perniagaan meminta saya untuk melakukan tugas, itulah yang mereka minati. Bilakah saya mendapat tanda semak untuk mengatakan apabila tugas itu selesai? Tidak apa teknik atau teknik apa yang saya gunakan untuk sampai ke sana. Oleh itu, alat kami membolehkan mereka memberi tumpuan kepada apa dan membolehkan mereka menjadi jauh lebih produktif, dan itu benar-benar kelebihan yang besar, dan seperti yang saya katakan, beberapa pangkalan data menawarkan alat hanya untuk platform pangkalan data mereka. Kami menawarkannya untuk dua platform pangkalan data. Saya mempunyai aliran kerja yang sama, antara muka pengguna grafik yang sama, navigasi yang sama. Jika anda tahu bagaimana untuk memberi keistimewaan kepada pengguna atau cara membuat jadual atau membuat indeks dalam pangkalan data, anda boleh melakukannya dalam semua dua belas kerana ia kelihatan sama dan merasakan dan aliran kerja yang sama. Ia mempunyai nilai yang besar kepada pelanggan kami.

Dez Blanchfield: Ya, saya rasa, orang ingin mendapatkan lebih banyak bang untuk mendapatkan wang dari sumber manusia mereka. Dan hari-hari mempunyai pakar individu di Oracle, Ingres dan DB2 semuanya hilang. Orang ramai dijangka menjadi Jack semua urus niaga, jadi saya fikir perkara ini telah menyelamatkan nyawa mereka.

Hanya satu perkara yang terakhir sebelum saya menyerahkannya kepada Doktor Robin Bloor. Anda menyebutkan terdapat muat turun percuma selama empat belas hari, apa yang berlaku - jika saya akan pergi ke hadapan dan saya akan melakukannya, dengan cara itu, saya akan meletakkannya di makmal teknologi Bloor dan berputar perkara ini up dan tangan saya sendiri - saya tidak mempunyai peluang untuk melakukan itu sebelum hari ini. Anda menyebutkan percubaan selama empat belas hari, anda berkata anda menjalankannya pada VM pada komputer anda, saya mengandaikan ia sebagai komputer riba. Apakah yang dimaksud dengan persediaan tahap kemasukan seseorang untuk mendapatkan tangan dan menggunakan percubaan empat belas hari seperti, sebelum saya kembali kepada Robin untuk pertanyaannya?

Bert Scalzo: Mana-mana persekitaran Windows, jadi Windows 7, mesin maya dengan satu CPU dan empat memori ingatan. Kami bukan alat yang benar-benar gemuk atau mahal. Sekarang jika anda ingin menjalankan pelayan pangkalan data anda pada VM yang sama di bawah Windows yang sama, ya, anda perlu menambahkan lebih banyak, tetapi jika anda menjalankan pangkalan data anda pada pelayan pangkalan data atau pada VM yang berasingan, VM akan memuat dan lari produk kami sangat ringan: satu CPU, empat memori ingatan, hampir semua versi Windows - dan kami menyokong pemasangan tiga puluh dua dan enam puluh empat bit. Tetapi anda perlu memasang klien vendor pangkalan data anda. Jadi jika anda mahu menyambung ke Oracle, anda perlu memasang klien bersih SQL, kerana itulah yang diperlukan oleh Oracle supaya anda dapat bercakap dengan pangkalan data.

Dez Blanchfield: Kedengarannya agak mudah. Saya fikir bahawa satu perkara dari ini adalah lebih daripada apa-apa yang saya berharap orang akan mengambil, selain kesedaran bahawa alat ini akan menyelamatkan nyawa mereka, adalah bahawa mereka harus pergi dan memuat turun dan bermain dengannya, memandangkan anda menawarkan percubaan percuma selama empat belas hari. Dan ia boleh berjalan di komputer riba semasa mereka tanpa memasang apa-apa tambahan, kerana jika mereka sudah melakukan pentadbiran pangkalan data, mereka sudah bekerja dengan pangkalan data yang mereka punya semua alat tersebut di tempat dan sama ada ia berjalan pada VM tempatan atau pada mereka desktop tempatan, kedengarannya tidak menyakitkan untuk memasang dan bermain. Jadi saya sangat mengesyorkan orang melakukan itu.

Robin, saya pasti anda mempunyai soalan dan Eric, anda mungkin mendapat beberapa dari penonton, jadi Robin, bagaimana saya lulus kepada anda, dan kemudian kembali kepada Eric?

Robin Bloor: Ya, baiklah, saya mempunyai banyak perkara untuk dikatakan, maksud saya, saya selalu mendapati kawasan ini menarik kerana ia adalah - saya memotong gigi saya. Tetapi sebenarnya, mungkin sejak sekitar tahun 1998, 1999, saya telah terlepas dari apa sebenarnya Oracle mampu. Dan, saya tahu Sybase dan Microsoft SQL Server, kedua-duanya agak mudah berbanding apa yang boleh dilakukan oleh Oracle. Anda membuat saya ketawa apabila anda - Maksud saya, saya menutup mulut saya, apabila anda mula bercakap tentang sharding. Oracle melakukannya sebelum ini. Oracle diperkenalkan pada satu ketika, mereka mendapat gagasan idea hubungan objek, jadi mereka memperkenalkan keupayaan untuk membuat jenis notasi objek dan penyimpanan objek di Oracle, dan saya bercakap dengan salah seorang jurutera mereka, seperti beberapa tahun selepas mereka memperkenalkannya dan saya bertanya berapa ramai orang menggunakannya, dan dia berkata saya fikir dua pelanggan telah mencubanya dan itu. Dan saya fikir perkara yang sama akan berlaku jika mereka mula mencuba dan melakukan perkara NoSQL yang tren. Anda tahu, saya fikir ia satu kesilapan, maksud saya, saya agak berminat dengan apa yang difikirkan oleh anda. Sudah tentu, mereka - mereka minum Kool-Aid. Mereka merasa seolah-olah mereka dapat membuat tuntutan serupa dengan pangkalan data NoSQL besar seperti Cassandra, tetapi anda tahu, adakah ia masuk akal kepada anda?

Bert Scalzo: Tidak, anda telah memukul kuku betul-betul di kepala. Kepada saya, jika saya akan melakukan hubungan, saya akan memilih vendor hubungan seperti Oracle atau SQL Server atau DB2 atau Postgres, tetapi jika saya akan melakukan sesuatu yang tidak berkaitan, dalam ruang data besar, atau ruang NoSQL, saya akan memilih alat yang sesuai untuk kerja yang betul. Dan saya tidak fikir bahawa secara semula jadi saya akan pergi ke vendor pangkalan data hubungan saya terlebih dahulu. Dan kemudian, anda menambah kedutan yang lain, iaitu apa yang terdapat di awan? Begitu banyak orang yang ingin mendapatkan pangkalan data mereka dari premis. Kemudian, anda perlu melihat penyedia awan anda dan berkata, "Baiklah, apa yang anda penyedia, apa pangkalan data apa yang anda ada untuk saya yang sesuai dengan keperluan saya dan bagaimana boleh dijual itu, dan terus terang apa kadar atau caj untuk menggunakan pangkalan data itu di awan setiap jam, atau sehari. Dan setiap gigabyte atau terabyte? "Dan apa yang anda dapati adalah mungkin beberapa pangkalan data yang agak baru seperti Mongo atau Cassandra, mungkin harga mereka lebih murah, jadi jika anda akan melakukan data besar jenis multi-petabyte, anda mungkin harus - hanya dari segi kos - harus mempertimbangkan pangkalan data NoSQL di awan kerana mereka mungkin cara yang paling kos efektif untuk melakukannya.

Robin Bloor: Ya, betul. Maksud saya, jenis saya - perkara mengenai pangkalan data relasi dalam pengalaman saya - yang cukup panjang untuk mempunyai bekas luka, itu pasti - ada banyak akal yang jika anda mula memohonnya dan - anda memahami apa hubungan sebenarnya, itu, Maksud saya, saya ingat akan melakukan beberapa perundingan dengan seorang pelanggan sekali, dan mereka membawa saya ke sebuah bilik dan mereka telah melakukan satu gambar rajah entiti dan mewujudkan satu bentuk normal yang ketiga, satu model sistem utama syarikat itu. Ia mempunyai dua ratus empat puluh meja kira-kira dan mereka berkata, "Baiklah, apa yang anda fikirkan? Kami akan membina pangkalan data untuk ini, "dan berkata" Apa pendapat anda tentang itu? "Saya berkata, " Saya tidak fikir ia akan berfungsi. "Dan betul betul, anda tahu, kerana mereka telah berakhir up untuk mewujudkan struktur tertentu dalam sebelas cara. Dan itulah perkara yang perlu difahami mengenai hubungan. Oleh itu, saya berminat dalam hal berapa banyak reka bentuk buruk yang anda hadapi. Maksud saya, saya tidak mempunyai masalah dengan DBArtisan - ia melakukan perkara-perkara yang sangat masuk akal dan hakikat bahawa anda sebenarnya boleh memaparkan pelbagai platform, saya fikir, sangat bagus - tetapi berapa banyak yang anda hadapi di sana di mana reka bentuk adalah isu di mana orang dapat menyelesaikan sendiri segala macam rasa sakit jika mereka turun ke skema bintang dan bukannya mendapatkan salji-y tentang hal itu, anda tahu?

Bert Scalzo: Baiklah, saya tidak mahu berbunyi seperti, bodoh atau sombong, tetapi saya akan mengatakan lebih kerap daripada tidak. Jelas sekali, majoriti pangkalan data yang saya terlibat di luar sana, mereka mempunyai masalah atau masalah. Mana yang baik, kerana alat kami, seperti alat pengoptimum pangkalan data kami, boleh membantu mereka untuk menyelesaikan masalah tersebut, dan, tetapi apa yang benar-benar lucu kepada saya, adalah banyak masalah yang menjadi masalah mudah yang sama berulang kali. Saya hanya bekerja dengan pelanggan pada hari yang lain yang mempunyai sebelas pertanyaan pertanyaan, dan saya seperti, "Baiklah, kenapa kamu tidak menggunakan klausa?" Dan mereka seperti, "Baiklah, saya tidak 'Saya tidak tahu apa itu.' Dan kemudian saya berkata, "Dan lihatlah sub-pilihan anda di sini dengan kaitan dan kaitan anda, " kata saya, "Dalam beberapa kes, anda ada di mana fasal di peringkat terdalam, bentuk rujukan meja yang luar. "Saya berkata, " Itu, bergerak ke tahap yang betul, jangan membenamkannya lebih dalam daripada yang sepatutnya, anda akan mengelirukan pengoptimal. "Dan dengan beberapa beberapa tweak kita mengambil sesuatu yang berjalan kira-kira dua jam dan turun hingga sepuluh minit dan ia hanya - dalam kes itu kita tidak melakukan apa-apa selain meningkatkan SQL yang mereka tulis. Saya fikir masalahnya adalah bahawa banyak universiti dan banyak orang yang mempelajari pengaturcaraan dalam persekitaran bukan akademik, mereka belajar sebagai proses rekod masa atau proses berorientasi baris dan relasi adalah satu set yang berorientasikan dengan sifat, dan jadi anda perlu berfikir dalam set untuk menulis SQL yang baik.

Robin Bloor: Ya, saya fikir betul betul. Dan anda perlu faham, itu perkara seperti, orang sepatutnya tahu perkara-perkara seperti ini. Tidak mengapa. Anda tidak akan dapat melakukan perkara yang rasional jika anda tidak menyedari bahawa walaupun pangkalan data yang direka dengan baik, lengkap, bergabung akan mengambil masa, pelbagai akan mengambil masa. Mereka lakukan kerana dunia tidak pernah menemui cara membuat mereka pergi dengan cepat. Mereka telah menemui cara-cara untuk mengatur data supaya mereka pergi lebih cepat daripada sebaliknya, dan banyak keghairahan yang saya katakan untuk pangkalan data NoSQL adalah semata-mata yang mereka mengelakkan melakukan bergabung. Mereka hanya mula membina pangkalan data dengan penyebaran data yang sama di dalamnya, kerana jika anda menyertai mana-mana pangkalan data NoSQL, mereka menyedut dengan kuat. Awak tak fikir?

Bert Scalzo: Oh betul-betul. Dan saya perlu ketawa kerana, saya bermula kembali sebelum pangkalan data relasional dan kembali apabila Ingres adalah RTI, Institut Teknologi Perhubungan, dan kami tidak mempunyai SQL, kami mempunyai bahasa relasi pra-SQL. Saya fikir dalam Ingres, ketika itu, ia dipanggil Quel. Jadi, anda mendapat dari paradigma pangkalan data lama seperti rangkaian dan grafis yang lebih tinggi, atau hierarki, dan anda meneruskan paradigma relasi selepas beberapa dekad dan sekarang kepada saya, rasanya kita akan kembali lagi ke hierarki. Ia hampir seperti kami telah kembali.

Robin Bloor: Ya, betul. Lebih baik kau pergi kepada Eric, saya memakan masa yang terlalu lama, tetapi adakah kami mendapat sebarang pertanyaan daripada penonton, Eric?

Eric Kavanagh: Kami ada, kami ada beberapa. Kita akan agak lama di sini tetapi saya akan membuang beberapa pasangan pada awak. Kami mempunyai beberapa soalan di sekitar indeks yang tidak kelihatan. Satu soalan ialah, "Adakah seseorang perlu menggunakan alat anda untuk melihatnya?" Satu lagi soalan ialah, "Baiklah, bagaimana jika anda buta?"

Bert Scalzo: Itulah yang baik.

Eric Kavanagh: Persoalan menarik juga, jadi hanya FYI.

Bert Scalzo: Tidak, anda tidak perlu mempunyai alat kami. Itulah ciri Oracle, indeks invisibles. Pada dasarnya dalam kamus data, Oracle hanya menyimpan sekeping metadata yang mengatakan, "Pengoptimal, mengabaikan indeks ini. Di sini, tetapi melainkan jika anda diarahkan secara fizikal melalui petunjuk di, petunjuk pengoptimuman dalam arahan SQL, jangan gunakan ini. "Dan, tidak, anda tidak perlu mempunyai alat kami, dan dalam semua hal, ia adalah indeks lama yang biasa, anda dapat melihatnya dalam alat apa pun, itu hanya pengoptimuman yang akan berkata, "Kami akan mengabaikannya dalam pemprosesan pertanyaan biasa." Anda perlu mengarahkannya jika anda mahu digunakan. Ia sangat berguna untuk senario yang saya nyatakan iaitu, jika anda ingin membina indeks dalam pengeluaran tetapi tidak berisiko melanggar laporan, atau perkara-perkara yang sudah berjalan, tetapi anda ingin mengujinya, anda boleh melakukannya. Itulah yang paling berguna untuknya.

Eric Kavanagh: Itulah barangan yang baik dan kemudian ada soalan lain yang baik di sini. "Bagaimana pula dengan beberapa pangkalan data dalam memori yang baru ini? Bagaimanakah teknologi pangkalan data dalam memori mengubah permainan berkenaan dengan pengindeksan? "

Bert Scalzo: Boy, baik kita - sekarang ini bagus, saya gembira seseorang bertanya soalan itu, kita perlu pergi setengah jam lagi. Tidak, in-memory, ia bergantung kepada vendor pangkalan data. Sekarang, biasanya, saya tidak bercakap apa-apa tetapi memuji apa yang dilakukan oleh Oracle kerana ia menakjubkan teknologi yang telah mereka bina, tetapi apabila anda merobohkan di bawah selimut dan anda melihat apa yang di ingatan di Oracle, di Oracle pangkalan data, sebenarnya ia masih menyimpan simpanan pada cakera, dan ia akan mendapat dimuatkan di dalam memori, dan jika ada memori yang tidak mencukupi untuk memegang seluruh jadual, ia akan kembali kepada bahagian-bahagiannya; ia tidak akan sesuai dengan ingatan, untuk melakukannya kedai runcit, dan oleh itu anda boleh melakukan pilihan terhadap meja dan untuk setengah meja, anda menggunakan pengindeksan memukul baris tradisional di atas meja, dan untuk separuh lagi pilihan itu sebenarnya akan keluar dan hanya meraih segala-galanya dari carian dalam memori, dan sebagainya, ia berbeza dengan cara yang SQL Server, sebagai contoh, menerapkannya dengan teknologi Hekaton mereka, anda tahu, dan SQL 2014, dan ia telah diperbaiki dalam SQL 2016, tetapi dalam beberapa aspek, mereka adalah versi ingatan yang lebih benar, dan, tetapi setiap pelaksanaan mempunyai kebaikan dan keburukan, tetapi anda perlu melihat di bawah penutup dan sedar. Kerana, saya mempunyai pelanggan yang berkata, "Oh memori dalam jadual ini - saya hanya akan membuat semua indeks, " dan saya seperti, "Jadual lebih besar daripada ingatan yang anda miliki di pelayan, jadi pada suatu ketika, beberapa pertanyaan terpaksa memukul cakera. "

Eric Kavanagh: Itu gambaran yang baik; itu barangan yang baik. Nah, orang-orang, kita akan mempunyai lebih banyak webcast dengan orang-orang ini sepanjang tahun ini, kembali bila-bila masa anda mendengar Bert sedang dalam persembahan kerana kita tahu dia tahu barang-barangnya. Ia sentiasa menyeronokkan untuk bercakap dengan para pakar. Kami mengarkibkan semua webcast ini untuk tontonan kemudian. Berikut adalah maklumat hubungan Bert sekali lagi, dan kami akan cuba menggali pautan itu untuk memuat turun dan menghantarnya juga melalui e-mel, tetapi anda sentiasa boleh menghantar e-mel anda dengan benar:, kami mempunyai banyak lagi webcasts berbaris untuk ini tahun dan kami sedang melakukan kerja sama sekarang, jadi, jika ada topik yang anda ingin dengar tentang tahun depan, jangan malu: Berhati-hati, orang-orang, kami akan bercakap dengan anda pada masa akan datang. Selamat tinggal.

Rakan Kongsi Kandungan Teks

Kakitangan Techopedia berpangkalan dengan Bloor Group dan boleh dihubungi menggunakan pilihan di sebelah kanan. Untuk maklumat mengenai cara kami bekerjasama dengan rakan industri klik di sini.
  • Profil
  • Laman web
Indeks kegilaan: bagaimana untuk mengelakkan kekacauan pangkalan data