บ้าน ฐานข้อมูล ดัชนีวิกลจริต: วิธีหลีกเลี่ยงความสับสนวุ่นวายของฐานข้อมูล

ดัชนีวิกลจริต: วิธีหลีกเลี่ยงความสับสนวุ่นวายของฐานข้อมูล

สารบัญ:

Anonim

โดย Techopedia Staff วันที่ 5 ตุลาคม 2559

Takeaway: Host Eric Kavanagh กล่าวถึงการจัดทำดัชนีฐานข้อมูลกับ Dr. Robin Bloor, Dez Blanchfield และ Bert Scalzo ของ IDERA

คุณยังไม่ได้เข้าสู่ระบบโปรดเข้าสู่ระบบหรือลงทะเบียนเพื่อดูวิดีโอ

พันธมิตรเนื้อหา Techopedia

เจ้าหน้าที่ Techopedia อยู่ในเครือเดียวกันกับ Bloor Group และสามารถติดต่อได้โดยใช้ตัวเลือกทางด้านขวา สำหรับข้อมูลเกี่ยวกับวิธีการทำงานกับพันธมิตรในอุตสาหกรรมคลิกที่นี่
  • ข้อมูลส่วนตัว
  • เว็บไซต์

Eric Kavanagh: ท่านสุภาพบุรุษและสุภาพสตรีสวัสดีและยินดีต้อนรับกลับมาอีกครั้ง มันเป็นวันพุธเวลาสี่โมงเช้าทางตะวันออกและพวกคุณที่รู้จักโปรแกรมรู้ว่ามันหมายถึงอะไรถึงเวลาแล้วสำหรับอีกหนึ่งตอนของเทคโนโลยีสุดฮอต ใช่แน่นอน. ชื่อของฉันคือ Eric Kavanagh ฉันจะเป็นผู้ดูแลของคุณสำหรับเซสชั่นวันนี้: "ดัชนีบ้า: วิธีการหลีกเลี่ยงความโกลาหลฐานข้อมูล" หรืออย่างที่ฉันอ้างถึงในอีเมลระเบิดครั้งสุดท้ายที่จะออกไป "ฐานข้อมูลการโต้เถียง" คำศัพท์ที่ร้อนแรงในสมัยนี้ "การถกเถียง" ทุกคนทำเช่นนั้น มีสไลด์เกี่ยวกับตัวคุณอย่างแท้จริง และเพียงพอเกี่ยวกับฉัน

ดังนั้นชุดเทคโนโลยีสุดฮอตได้รับการออกแบบมาเพื่อกำหนดพื้นที่เฉพาะเมื่อเทียบกับห้องบรรยายสรุปซึ่งเป็นบทสรุปนักวิเคราะห์สดแบบตัวต่อตัวสำหรับ Hot Tech เราได้นักวิเคราะห์สองคน วันนี้มันจะเป็นหมอโรบินบลอร์ของเราเองและนักวิทยาศาสตร์ด้านข้อมูลของเรา Dez Blanchfield และเรากำลังพูดถึงหัวข้อที่ฉันคิดว่าเป็นสัญลักษณ์ของสิ่งที่เกิดขึ้นในตลาดวันนี้

สิ่งสำคัญที่สุดคือเราอยู่ในโลกแห่งความซับซ้อนในทุกวันนี้ จริงๆแล้วถ้าคุณคิดย้อนกลับไปเมื่อสิบห้าปีหรือยี่สิบปีมันเป็นโลกที่แตกต่างกันอย่างมากโดยเฉพาะอย่างยิ่งในแง่ของเทคโนโลยีฐานข้อมูล ฐานข้อมูลที่ใช้ค่อนข้างง่าย มีเพียงไม่กี่คนเท่านั้น ส่วนใหญ่เป็นแบบสัมพันธ์ ตอนนี้เรามีเทคโนโลยีฐานข้อมูลทั้งหมด คะแนนตัวเลือกตามตัวอักษรบนโต๊ะสำหรับผู้ที่ต้องการสร้างแอปพลิเคชันหรือทำอะไรกับข้อมูล ทุกอย่างเปลี่ยนแปลงและส่งผลกระทบต่อผู้ที่พยายามจัดการระบบเหล่านี้ เราจะคุยกันวันนี้กับ Bert Scalzo ผู้เป็นผู้เชี่ยวชาญตัวจริงในสาขานี้ เขาเป็นผู้บริหารผลิตภัณฑ์อาวุโสของ IDERA เกี่ยวกับสิ่งที่คุณสามารถทำได้เพื่อรับข้อมูลทั้งหมดนั้น ด้วยสิ่งนี้ฉันจะมอบมันให้กับ Doctor Robin Bloor เพื่อนำมันออกไป Robin พื้นเป็นของคุณ

Robin Bloor: โอเคขอบคุณสำหรับการแนะนำครั้งนั้น ฉันคิดว่า - เพราะมันเป็นสองมือฉันคิดว่าฉันจะพูดถึงการเพิ่มประสิทธิภาพฐานข้อมูลโดยทั่วไปเพื่อเป็นการแนะนำเกี่ยวกับการแสดงสุดยอดเทคโนโลยีนี้ ฉันเริ่มต้นชีวิต - ในเทคโนโลยีและการวิเคราะห์ - ฉันเริ่มชีวิตด้วยการทำสิ่งนี้เพราะฉันเคยเขียนบทความเกี่ยวกับความสามารถของฐานข้อมูลบนแพลตฟอร์ม DEC VAX และด้วยเหตุนี้ผู้ใช้ฐานข้อมูลจึงใช้ข้อมูลสรุปให้ฉัน และสิ่งที่เกิดขึ้นกับฉันก็คือทำไมคุณถึงมีฐานข้อมูล ฉันหมายถึงในสมัยนั้นมีผู้คนมากมายที่เคยสร้างไฟล์ค่าคีย์และใช้ไฟล์เหล่านั้นเพื่อให้มีการเข้าใจผิดแบบเรียงตามดัชนีที่เราเรียกพวกเขา แต่เพื่อสร้างความสามารถของฐานข้อมูลและคุณรู้ไหมว่าทำไมคุณถึงมี มีอะไรอีกไหม

และคำตอบนั้นฉันคิดว่า Michael Stonebraker ให้คำตอบที่ดีที่สุดและเขากล่าวว่า "ฐานข้อมูลสามารถรู้เพิ่มเติมเกี่ยวกับที่ตั้งของข้อมูลและความรวดเร็วในการรับมากกว่าที่โปรแกรมใด ๆ จะรู้" และฉันคิดว่ามันน่าสนใจ มันเป็นธรรมชาติของเกม แต่ใน 19 - เกี่ยวกับ 1989 ที่ฉันเริ่มในการวิเคราะห์เทคโนโลยีและในเวลานั้นฐานข้อมูลนั้นง่ายมากและฐานข้อมูลเชิงสัมพันธ์นั้นง่ายมาก พวกเขามีความสามารถน้อยฉันหมายความว่าพวกเขาสามารถเก็บข้อมูลได้ชัดเจนและคุณสามารถสำรองข้อมูลและพวกเขามีพวกเขาเป็นไปตามข้อกำหนดของกรด แต่พวกเขามีเครื่องมือเพิ่มประสิทธิภาพที่อ่อนแอมาก ในความเป็นจริงมันยากที่จะยืนยันว่าพวกเขามีความสามารถของเครื่องมือเพิ่มประสิทธิภาพทั้งหมด

และต่อมาพวกเขาก็เริ่มดีขึ้นเรื่อย ๆ แต่คุณรู้ไหมว่าเมื่อฐานข้อมูลไม่ทำงาน - เนื่องจากจิงโจ้เหล่านี้ดูเหมือนจะเป็นทางเดียวหรือบ่งชี้ว่า - มีเหตุผลมากมายที่ทำให้มันช้า และสิ่งที่นำฉันไปสู่จุด: ฐานข้อมูลมีฟังก์ชั่นมากมาย แต่สิ่งที่สำคัญที่สุดคือการปรับให้เหมาะสมของแบบสอบถาม หากพวกเขาไม่ทำเช่นนั้นคุณจะไม่ใช้มัน มันเกี่ยวกับการรับข้อมูลอย่างรวดเร็วมันเกี่ยวกับความสามารถในการทำได้เมื่อมีผู้ใช้พร้อมกันจำนวนมากและนั่นเป็นปัญหาที่ยาก และเมื่อคุณดูที่จริงเรียกว่าฐานข้อมูลที่เป็นผู้ใหญ่ถ้าคุณต้องการ - แต่แน่นอนว่า Oracle ในระดับที่น้อยกว่าเล็กน้อยคือ Microsoft SQL Server, Teradata และ DB2 อย่างแน่นอน - ตัวเพิ่มประสิทธิภาพของฐานข้อมูลเหล่านั้นได้รับมานานหลายทศวรรษ อาคาร. คุณรู้ไหมพวกเขาไม่ได้ - บางคนไม่ได้นั่งลง - ผู้ชายหกคนกับผู้ชายสองคน, ปี, โครงการและเพียงแค่เคาะกัน มันไม่ทำงานอย่างนั้น ความสามารถในการปรับให้เหมาะสมนั้นเติบโตขึ้นเรื่อย ๆ และใช้เวลาเพิ่มขึ้นอย่างมาก อย่างไรก็ตามเรามาพูดถึงพื้นหลังกับฐานข้อมูล ตอนนี้มีจำนวนมากที่น่ากลัวเกี่ยวกับฐานข้อมูล NoSQL และมีความกระตือรือร้นอย่างมากสำหรับฐานข้อมูลกราฟ และการใช้งาน SQL มากกว่า Hadoop และสิ่งต่าง ๆ เช่นนั้น แต่ความจริงของเรื่องนี้ก็คือถ้าคุณต้องการฐานข้อมูลในตอนนี้ถ้าคุณต้องการ OLTP และปริมาณการสืบค้นจำนวนมากที่ใช้งานได้อย่างสมบูรณ์มันเป็นฐานข้อมูลเชิงสัมพันธ์หรือไม่มีอะไรเลย

ในบรรดาฐานข้อมูลเชิงสัมพันธ์นั้นออราเคิลมีชื่อเสียงในด้านความนิยม ฉันคิดว่า Microsoft SQL Server เป็นที่สอง ทั้งคู่สามารถใช้งานกับ OLTP และปริมาณงานแบบสอบถามได้ แต่จริงๆแล้วคุณไม่สามารถหลีกเลี่ยงการผสมภาระงานเหล่านั้นได้ คุณต้องการเหตุการณ์ที่แตกต่างกันสำหรับภาระงาน OLTP และปริมาณงานแบบสอบถาม มีทางเลือกอื่นสำหรับ SQL และกราฟ บริษัท ส่วนใหญ่สร้างมาตรฐานบนฐานข้อมูลเฉพาะซึ่งเป็นเหตุผล - ฉันหมายถึงหลังจากทศวรรษที่ผ่านมาในการต่อสู้กับผู้เล่นคนอื่น ๆ ออราเคิลกลายเป็นฐานข้อมูลที่โดดเด่นที่สุด เพียงเพราะพวกเขาสามารถขายสิทธิ์ใช้งานองค์กรและดังนั้น บริษัท จะใช้ผลิตภัณฑ์ทางเลือกในผลิตภัณฑ์ที่ยอดเยี่ยมเท่านั้น Oracle ไม่ยอมทำตาม และฐานข้อมูลเป็นกลยุทธ์ในการพัฒนา และคุณรู้ว่าฉันได้ทำการวิจัยเล็กน้อยสำหรับงานนำเสนอนี้และมันก็เป็นแบบ - ฉันจะไปหามันซักพัก แต่มันน่าสนใจมากที่พวกมันมีวิวัฒนาการในแง่ของการมองจากตำแหน่งของ DBA นี่คือสิ่งที่ฉันเรียกว่าแนวโน้มที่มองไม่เห็น มันเป็นกฎของมัวร์คีบ มันเป็นดังนี้: ฐานข้อมูลที่ใหญ่ที่สุดคือและฐานข้อมูลใหม่ไม่มีฐานข้อมูลเก่าที่ได้รับข้อมูลมากขึ้นในการบริโภค โดยปกติจะเป็นฐานข้อมูลที่ใช้กับปัญหาใหม่ และพวกมันเติบโตในแง่ของปริมาณข้อมูล ประมาณที่ลูกบาศก์ของมัวร์ กฎหมาย. กฎของมัวร์จึงเป็นปัจจัยสิบเท่าทุก ๆ หกปี VLDBs มีแนวโน้มที่จะเติบโตเป็นปัจจัยหนึ่งพันทุก ๆ หกปี ในปี 1991, 1992 ฐานข้อมูลขนาดใหญ่วัดเป็นเมกะไบต์ ใน '97 และ '98, กิกะไบต์ 2003, '4, เทราไบต์ 2009, '10, คุณเริ่มเห็นฐานข้อมูลเพตาไบต์ ฉันคิดว่าอาจมีฐานข้อมูล exabyte หนึ่งหรือสองฐานในขณะนี้ แต่ที่ใหญ่ที่สุดที่ฉันเคยได้ยินคือ 200 petabytes ต่อเวลาและคุณก็รู้ไม่ได้รับข้อมูลไปยังฐานข้อมูล petabyte แต่ส่วนใหญ่แล้วจะเป็น บริษัท ยักษ์ใหญ่ในเว็บ 2.0 ใหม่อย่างแน่นอนบางทีคุณอาจมี Facebook เป็นหลักในทิศทางนั้น

แต่อย่างไรก็ตามถ้าคุณดูที่จริงคาดหวังว่าฐานข้อมูลที่จะผ่านระดับเสียงดังกล่าวก็ถามมาก และอย่างน่าทึ่งถึงระดับ Petabyte พวกเขาดูเหมือนทำได้ดีพอสมควร ฉันหมายถึงฉันกำลังพูดถึงผลิตภัณฑ์รุ่นเก่ามากกว่าสิ่งใหม่ พวกเขาดูเหมือนจะทำได้ดีเป็นพิเศษ ถ้าเราดูที่ประสิทธิภาพของฐานข้อมูล, คอขวด, สิ่งนี้จะพาฉันย้อนเวลากลับไปที่เวลาที่ฉันเคยใส่ใจกับพวกเขาและต้องกังวลกับพวกเขา คุณรู้ว่านี่เป็นความผิดพลาดพื้นฐานของฮาร์ดแวร์ มีคอขวด CPU อาจมีคอขวดหน่วยความจำอาจมีคอขวดดิสก์อาจเป็นไปได้ อาจเป็นเครือข่ายที่ทำให้คุณเศร้าโศกและคุณอาจพบปัญหาเกี่ยวกับการล็อคขึ้นอยู่กับสิ่งที่คุณทำ แต่โดยปกติแล้วเป็นเพราะโปรแกรมไม่ทราบว่าใครจะโทรล็อค ดังนั้นถ้าคุณกำลังจะปรับฐานข้อมูลคุณกำลังพยายามปรับแต่งเพื่อให้มันเต้นรำระหว่างคอขวดที่เป็นไปได้ทั้งห้านี้และที่สามารถทำได้ และนั่นไม่ใช่เรื่องง่ายเพราะจำนวนหน่วยความจำที่คุณสามารถกำหนดค่าบนเซิร์ฟเวอร์ที่ระบุเพิ่มขึ้นอย่างมาก จากนั้นซีพียูก็กลายเป็นมัลติคอร์ดิสก์ตอนนี้เราสามารถทำได้ฉันคิดว่าแม้กระทั่งบนเซิร์ฟเวอร์สินค้าโภคภัณฑ์ฉันคิดว่าคุณสามารถทำหลายร้อยและหลายร้อยเทราไบต์ไบต์ของ Petabyte หรือแม้แต่บนเซิร์ฟเวอร์สินค้าโภคภัณฑ์ ดังนั้นในทุกสิ่งเหล่านี้คุณสามารถเล่นได้เครือข่ายสามารถไปที่ความเร็วที่แตกต่างกัน แต่ส่วนใหญ่เมื่อคุณจัดการกับฐานข้อมูลคุณต้องการมีสายเคเบิลใยแก้วนำแสงระหว่างเซิร์ฟเวอร์และไม่มีอะไรที่ทำงานอยู่โดยเฉพาะ ทางนั้น.

ปัจจัยด้านประสิทธิภาพของฐานข้อมูล ฉันหมายความว่าฉันกำลังออกจากสิ่งที่เป็นไปได้ทั้งหมดเพราะฉันรู้ว่า Dez กำลังจะพูดถึงมัน แต่การออกแบบฐานข้อมูลที่ไม่ดีหมายถึงฐานข้อมูลที่มีประสิทธิภาพต่ำ การออกแบบโปรแกรมที่ไม่ดีอาจหมายถึงการทิ้ง SQL ที่โง่มากที่ฐานข้อมูลซึ่งจะใช้เวลานานกว่านั้นมาก การผสมกันของเวิร์กโหลดและเวิร์กโหลดการเกิดพร้อมกันมากเกินไปจะทำให้เกิดปัญหาคอขวด การผสมเวิร์กโหลดเมื่อคุณมีคิวรีขนาดใหญ่ที่มีคิวรีสั้นขนาดสั้นและคมชัดมากซึ่งทำให้เกิดปัญหา มีปัญหาในการโหลดบาลานซ์ ฐานข้อมูลส่วนใหญ่ดูแลสิ่งนั้น แต่ถ้าคุณยังไม่มีผลิตภัณฑ์ที่ซับซ้อนคุณก็รู้เพียงเพิ่มเซิร์ฟเวอร์ไม่กี่อย่างถ้าคุณต้องการเพิ่มขนาดของคลัสเตอร์ คุณต้องสมดุลภาระก่อนที่จะได้รับประสิทธิภาพสูงสุด คุณต้องวางแผนกำลังการผลิต อย่างแน่นอน โดยเฉพาะอย่างยิ่งในปัจจุบันนี้เมื่อปริมาณข้อมูลเพิ่มขึ้นมากกว่าที่เคยเป็นสำหรับฐานข้อมูล และมีปัญหาเรื่องชั้นข้อมูลทั้งหมดเกี่ยวกับวิธีที่คุณนำเข้าข้อมูลวิธีที่คุณย้ายข้อมูลไป การไม่รับข้อมูลไปยังฐานข้อมูลตรงเวลาอาจเป็นปัญหาด้านประสิทธิภาพในภายหลังเพราะเราได้ไปจากฐานข้อมูลที่ทำงานใน Windows ไปจนถึงยี่สิบสี่โดยเจ็ดถึงสามร้อยเจ็ดสิบห้าการดำเนินการและไม่มีหน้าต่างที่คุณสามารถชะลอการ ฐานข้อมูลล่มหรือไม่น่าเป็นไปได้ที่จะมีทุกวันนี้

ปัญหา Oracle DBA นี่คือสิ่งที่ฉันคิด ฉันอยู่ใน DBA ของ Oracle กับ Oracle 7 แล้วและฉันจำได้ว่าจะปรับได้อย่างไร และถ้าคุณดู Oracle ตอนนี้จริง ๆ แล้วเป็นวิธี - เป็นไปได้เพิ่มความสามารถให้มากขึ้น มันมีการจัดทำดัชนีบิตแมปและสิ่งต่าง ๆ เช่นนั้น แต่จริง ๆ แล้วฉันใช้เวลาในการค้นหาและดูว่ามีพารามิเตอร์การปรับแต่งจริง ๆ จำนวนเท่าใดในฐานข้อมูล Oracle ในขณะนี้ และมีพารามิเตอร์การปรับแต่งมากกว่าสามร้อยห้าสิบพารามิเตอร์และมีอีกหนึ่งร้อยพารามิเตอร์ที่ซ่อนอยู่ซึ่ง DBA ผู้เชี่ยวชาญอาจรู้เกี่ยวกับ แต่ Oracle DBA ปกติไม่ทราบ และนั่นหมายความว่าการปรับฐานข้อมูลประเภทนี้เป็นสิ่งที่ยาก มันไม่ใช่เรื่องง่ายเลย คุณจะต้องมีความรู้สึกกับมันคุณจะต้องทำมันมาเป็นเวลานานนานและคุณจะต้องรู้ว่าปัญหาที่คุณคิดว่าคุณกำลังแก้คืออะไรเพราะการปรับแต่งเริ่มต้นเมื่อ ประสิทธิภาพลดลง แต่มันอาจไม่ใช่ประสิทธิภาพของทุกสิ่ง อาจเป็นประสิทธิภาพของการสืบค้นเฉพาะที่สำคัญและคุณอาจสามารถแก้ไขได้โดยการตรึงข้อมูลและหน่วยความจำบางอย่างหรือคุณอาจต้องแก้ไขด้วยการจัดทำดัชนีหรือคุณอาจต้องเริ่มทำการแบ่งพาร์ติชันด้วยวิธีอื่น มีหลายสิ่งที่คุณสามารถทำได้คือประเด็น ดังนั้นพวกเขาจะไม่ทำมันในหัวของพวกเขา - DBAs ต้องการเครื่องมือ ตอนนี้ฉันจะส่งต่อไปยัง Dez ที่กำลังจะบอกคุณเกี่ยวกับการจัดทำดัชนีฉันคิดว่า

Eric Kavanagh: เอาล่ะดีไปเอามันออกไป

Dez Blanchfield: ขอบคุณ Robin และฉันชอบหน้าปก ฉันคิดว่าคุณได้โยนถุงมือลงไปที่นั่นเพื่อให้ฉันมาได้จากระยะไกลใกล้กับสิ่งที่น่าตื่นเต้น แต่ฉันใช้ภาพของกาแลคซีเล็ก ๆ น้อย ๆ ของเราเนื่องจากมุมมองของฉันในสิ่งที่ความท้าทายในวันนี้สำหรับผู้ดูแลระบบฐานข้อมูลกลายเป็นเพราะนี่คือภาพทางจิตที่ฉันมักจะคิดในใจเมื่อฉันเข้าสู่สภาพแวดล้อม ในโลกของการบริหารฐานข้อมูลหรือออกแบบฐานข้อมูลในระดับนั้นอีกต่อไป แต่อย่างตัวคุณโรบินกับฉันมีส่วนร่วมในโลกของฐานข้อมูลเป็นเวลาหลายปีไม่ว่าจะเป็นผู้ดูแลระบบหรือนักพัฒนาหรือสถาปนิกในที่สุดและจากนั้นก็ตระหนักว่าฉันสามารถทำสิ่งที่ดีกว่าเพื่อรับเปลือกโลก แต่มันมีแนวโน้มที่จะรู้สึกว่าคุณกำลังจ้องมองไปที่กาแลคซีของข้อมูลนี้และอื่น ๆ ในวันนี้เมื่อเราไปจากที่คุณได้อธิบายไว้เราได้จากเมกะไบต์ไปยังเพตาไบต์และนอกระยะเวลาสั้น ๆ ในรูปแบบที่ยิ่งใหญ่ของสิ่งต่าง ๆ แต่วลีที่ฉันมีอยู่ในใจของฉันคือดัชนีฐานข้อมูลตอนนี้กลายเป็นงานศิลปะสีดำและพวกเขาก็ไม่ได้เป็นประเภทของสิ่งที่มนุษย์ปุถุชนควรจัดเรียงของตะลุยสำหรับโปรแกรมประยุกต์ทางธุรกิจระดับองค์กรและประเภทของการกำหนดคุณ แค่พูดถึง แต่ฉันต้องการที่จะผ่านบทสรุปที่รวดเร็วของประเภทของประวัติศาสตร์ที่ฉันมีกับโลกฐานข้อมูลและนำมาสู่บริบทที่เราจะทำการสรุปและจากนั้นก็วิ่งผ่านวัสดุบางอย่างในวันนี้กับเพื่อนของเราที่ IDERA เพราะฉันคิดว่ามีความคิดที่แตกต่างกันมากมายเกี่ยวกับวิธีการปรับแต่งประสิทธิภาพของฐานข้อมูลและหนึ่งในนั้นคือการขว้างปาดีบุกในสิ่งนั้น สำหรับร้านค้ามากมายที่ฉันเจอพวกเขาไม่เคยไปถึงจุดที่ทำการปรับแต่งประสิทธิภาพที่เลเยอร์ฐานข้อมูลและโดยเฉพาะอย่างยิ่งเลเยอร์ดัชนีจนกว่าพวกเขาจะผ่านเส้นทางที่ยากลำบากของการคิดว่าพวกเขาสามารถโยนจูนเนอร์ได้ .

ผู้คนจำนวนมากใช้วิธีเหล็กขนาดใหญ่ในใจของฉันและฉันได้ภาพของ The Flash ที่นี่เพราะถ้าคุณเคยดูหนังเก่า ๆ หรือรายการทีวีล่าสุดกับ The Flash เช่นเดียวกับใน Flash Gordon ตัวละครเก่าและตอนนี้เขาเรียกว่า "The Flash" เขามีแนวโน้มที่จะไปอย่างรวดเร็วและพลังงานของเขาหมด และนี่คือสิ่งที่จะเกิดขึ้นเมื่อคุณโยนเตารีดขนาดใหญ่ที่ฐานข้อมูลประสิทธิภาพ จากประสบการณ์ของฉันคุณสามารถใส่ประสิทธิภาพสูงการทำงานหนักในเกมได้อย่างสม่ำเสมอคุณสามารถเพิ่มประสิทธิภาพระบบปฏิบัติการของคุณและปรับให้เข้ากับจุดที่แน่นอน คุณสามารถมั่นใจได้ว่าคุณมีมัลติคอร์ที่รวดเร็วมัลติเธรดซีพียูเพื่อให้แอปพลิเคชันทำงานได้เร็วขึ้นคุณสามารถโยน RAM จำนวนมากได้คุณสามารถมี backplanes ความเร็วสูงคุณสามารถไปจากฮาร์ดไดรฟ์ไปจนถึงแคชฮาร์ดไดรฟ์ และอาร์เรย์หน่วยเก็บข้อมูลประสิทธิภาพสูง และแม้กระทั่งตอนนี้ผู้คนก็มีส่วนร่วมในสิ่งต่าง ๆ เช่นแฟลชและ NVMe ที่เอนจิ้นฐานข้อมูลของพวกเขาโดยคิดว่าพวกเขากำลังจะได้รับการเข้าสู่ระบบครั้งนี้ด้วยประสิทธิภาพที่เพิ่มขึ้นสองครั้ง และพวกเขาจะได้รับอย่างสม่ำเสมอ แต่ทุกอย่างกลับมามีปัญหาการปรับแต่งประสิทธิภาพพื้นฐานแบบเดียวกัน การเชื่อมต่อเครือข่ายที่มีความหน่วงต่ำจำนวนมากเพื่อให้กลุ่มทำงานได้อย่างรวดเร็ว และการจัดกลุ่มโครงสร้างพื้นฐานของฐานข้อมูลดังนั้นคุณจึงมีมากกว่าหนึ่งเครื่องที่ทำงานทั้งหมด แต่คุณมักจะกลับมามีปัญหาประสิทธิภาพการทำงานขั้นพื้นฐานแบบเดียวกันนั่นคือการอ่านข้อมูล การเขียนข้อมูลนั้นโดยส่วนใหญ่แล้วจะเป็นความท้าทายที่ค่อนข้างเป็นเส้นตรงและหากไม่ได้ทำอย่างถูกต้อง

แล้วเราก็มีความท้าทายในโลกปัจจุบัน: ฐานข้อมูลทั้งหมดไม่ได้สร้างขึ้นเท่ากัน มีฐานข้อมูลและ "ฐานข้อมูล quote-on-quote" และเมื่อเราคิดเกี่ยวกับเอ็นจิ้นฐานข้อมูลผู้คนมักนึกถึงผู้ต้องสงสัยแบบดั้งเดิมตามปกติเหมือนในโลก SQL คุณรู้ไหมว่าเรามี Oracle และ Microsoft SQL Server และมีสองสามรอบในโลกโอเพนซอร์ซที่มี MySQL ซึ่งตอนนี้ Oracle เป็นเจ้าของ แต่ก็ยังเปิดอยู่ และจากนั้นเรามีผู้ต้องสงสัยที่ไม่ธรรมดาเครื่องยนต์ NoSQL ซึ่งยังมีปัญหาเกี่ยวกับการจัดทำดัชนีและการจัดการประสิทธิภาพและฉันจะไม่เข้าไปดูพวกเขาในรายละเอียดจำนวนมาก แต่มีจำนวนที่เพิ่มขึ้นของสิ่งเหล่านี้ สิ่งต่าง ๆ โผล่ขึ้นมาทุกวันและพวกเขามีลักษณะและความรู้สึกเหมือนเครื่องมือฐานข้อมูลจากมุมมองของนักพัฒนาและจากมุมมองประสิทธิภาพ แต่พวกมันเป็นสัตว์ที่แตกต่างกันมากและพวกมันมีโพรงเล็ก ๆ ของพวกเขาเองในโลก ประสิทธิภาพในหน่วยความจำหรือสเกลเชิงเส้นบนดิสก์ แต่นี่คือสิ่งที่โลกดูเหมือนว่าในโลกฐานข้อมูล นี่คือปี 2559 นี่เป็นแผนที่รุ่นที่สามโดยกลุ่มคนที่สร้างแผนที่ภูมิทัศน์ที่ต่อเนื่องของฐานข้อมูลที่มีลักษณะอย่างไรและนี่คือที่ที่มันไม่ใช่สถาปนิกสถาปนิกฐานข้อมูลหรือผู้ดูแลระบบฐานข้อมูล ของมัน แท้จริงร้อยและหลายร้อยและทำให้แตกต่างกันหลายร้อยแบบผู้ผลิตฐานข้อมูลตาม SQL อย่างสม่ำเสมอ และสิ่งที่น่าสนใจคือพวกเขากลับมาพร้อมกับความท้าทายเดียวกัน ประสิทธิภาพและการปรับประสิทธิภาพรอบเอ็นจิ้นฐานข้อมูลและโดยเฉพาะอย่างยิ่งวิธีการจัดทำดัชนีข้อมูล

ดังนั้นเราจะครอบคลุมการจัดทำดัชนีฐานข้อมูลอย่างรวดเร็วเพราะมันเป็นหัวข้อที่น่าสนใจและคุณต้องเข้าไปดูรายละเอียดเพิ่มเติมด้วยการสาธิตฉันเชื่อ แต่ฉันคิดว่ามันค่อนข้างเป็นที่ยอมรับและเป็นมาตรฐานอุตสาหกรรมที่การปรับแต่งดัชนีฐานข้อมูลเป็นจุดที่โลกเริ่มต้นและสิ้นสุดเท่าที่มั่นใจได้ว่าข้อมูลของคุณสามารถเข้าถึงได้ในรูปแบบที่รวดเร็วและรวดเร็ว แต่การจัดทำดัชนีฐานข้อมูลคืออะไร หากเราคิดเกี่ยวกับการจัดทำดัชนีในรูปแบบที่เราคุ้นเคยกับมนุษย์ในชีวิตประจำวันให้นึกถึงหน้าดัชนีในหนังสือ หากคุณต้องการหาบางอย่างในหนังสือ - โดยเฉพาะอย่างยิ่งสิ่งที่ชอบของสารานุกรมหรือบางสิ่งบางอย่างเช่นเอกสารอ้างอิงของบางรูปแบบ - หากคุณกำลังมองหาบางอย่างเช่นหน้านี้ที่ฉันกำลังมองหาสิ่งต่าง ๆ เช่นหัวข้อเขื่อน ในสารานุกรม ฉันต้องการค้นหาทุกการอ้างอิงถึงเขื่อนการกักเก็บน้ำและพื้นที่ที่มีการสะสมขนาดใหญ่โดยทั่วไปที่มนุษย์สร้างขึ้น ฉันจะไปทางด้านหลังฉันจะพบมันในรายการเรียงตามตัวอักษร A ถึง Z จากซ้ายไปขวาและฉันจะพบ D. ฉันจะหาคำว่า "เขื่อน" และฉันจะเห็นว่าบน หน้า 16, 38, 41 มีการอ้างอิงกับพวกเขาและจากนั้นฉันสามารถไปที่หน้าเหล่านั้นฉันสามารถสแกนตาของฉันและฉันจะพบการอ้างอิงถึงคำว่า "เขื่อน" มันเป็นแนวคิดเดียวกันในฐานข้อมูล แต่ตอนนี้มันเป็นวิทยาศาสตร์จรวดในหลาย ๆ ด้าน มากดังนั้นที่มีประสิทธิภาพทุกผู้ดูแลฐานข้อมูลที่ฉันเคยรู้จักกันดีถือว่าดัชนีเป็นเครื่องมือที่สำคัญที่สุดเดียวสำหรับการปรับประสิทธิภาพในฐานข้อมูลใด ๆ ในโลกไม่ว่าประสบการณ์ของพวกเขาอาจจะไกลเท่าที่โยนมันหรือ สิ่งที่กรณีอาจจะเป็น

โดยทั่วไปเมื่อเราพูดถึงการจัดทำดัชนีฐานข้อมูลมีวิธีการทั่วไปจำนวนมาก และยิ่งดัชนีฐานข้อมูลมีความซับซ้อนมากขึ้นเท่าไหร่วิธีการจัดทำดัชนีข้อมูลก็จะมีความซับซ้อนมากขึ้น แต่โดยพื้นฐานเมื่อคุณคิดถึงการทำดัชนีข้อมูล - ลองจินตนาการว่าเรามีไฟล์ที่มีรายชื่ออยู่ พวกเขาอาจไม่เรียงตามตัวอักษร สมมติว่ามียี่สิบของพวกเขา ถ้าเรากำลังจะเรียงลำดับ - ถ้าเรากำลังค้นหาข้อมูลในรายการนั้นจากบนลงล่างและสมมุติว่าเป็นรายการของชื่อ หากฉันเลือกชื่อแบบสุ่มและฉันเริ่มเลื่อนรายการลงจากบนลงล่างในรูปแบบเชิงเส้นและเป็นรายการที่ไม่มีลำดับมีสองเกณฑ์ที่ฉันคิดว่าเป็นเวลาค้นหาเฉลี่ยและเวลาค้นหาสูงสุดของฉัน - และ ฉันพิมพ์ผิดในบรรทัดที่สองควรเป็น "เวลาค้นหาสูงสุด" ขออภัย - แต่เวลาค้นหาโดยเฉลี่ยของฉันคือ N บวกหนึ่งหารด้วยสองและนั่นคือโดยเฉลี่ยแล้วฉันใช้เวลาห้าสิบเปอร์เซ็นต์ เพื่อสแกนจากด้านบนของรายการไปยังด้านล่างของรายการเพื่อค้นหาสิ่งที่สุ่มในรายการนั้น และบรรทัดที่สองที่อยู่ใต้เส้นตรงควรเป็น "เวลาค้นหาสูงสุด" แต่เวลาค้นหาสูงสุดคือจำนวนรายการเป็นหลักและนั่นคือถ้าฉันมีรายการยี่สิบรายการสิ่งนั้นเวลาส่วนใหญ่ที่ฉันสามารถทำได้ เพื่อค้นหาบางสิ่งในฐานข้อมูลนั้นคือไปจากบนลงล่างซึ่งสมมติว่า 20 รายการในตัวอย่างที่ง่ายนี้ และมันเป็นกระบวนการที่ช้ามากและไม่มีทางปรับประสิทธิภาพได้ จากนั้นก็มีวิธีอื่น ๆ ในการเก็บข้อมูลและสร้างดัชนีซึ่งเป็นรายการตัวชี้สั้น ๆ ที่มีประสิทธิภาพซึ่งข้อมูลจริงเช่นไบนารี่, ต้นไม้ B, บิตแมป, hashing, คลัสเตอร์และไม่มีคลัสเตอร์ แล้วมีข้อมูลประเภทต่าง ๆ เช่นอวกาศกรอง XML และข้อความเต็ม

ไบนารี่เป็นโปรแกรมที่ใช้กันทั่วไปสำหรับข้อมูลที่ให้ยืม B-tree น่าจะเป็นสิ่งที่พบได้บ่อยที่สุดในความหมายทั่วไปในอดีตซึ่งเป็นวิธีการทั่วไปในการจัดทำดัชนีให้กับข้อมูลทุกรูปแบบและอนุญาตให้ตัวบันทึกการเลือกและการแทรกและการลบค่อนข้างง่ายเมื่อคุณย้ายพอยน์เตอร์ไปรอบ ๆ อ้างอิงถึงพอยน์เตอร์, จุด มีประเภทอื่น ๆ เช่นบิตแมปที่ประเภทข้อมูลเป็นกังวลหากเรามีช่วงที่เกี่ยวข้องของบางรูปแบบ การแฮชใช้งานได้ดีมากสำหรับวัตถุขนาดใหญ่โดยเฉพาะบล็อกและรูปภาพ และคุณสามารถเห็นได้ว่ามีวิธีการทางวิทยาศาสตร์ประเภทต่าง ๆ วิธีทางคณิตศาสตร์เพื่อจัดทำดัชนีข้อมูล สำหรับมนุษย์ธรรมดาพวกมันเป็นความท้าทายที่น่าสนใจที่จะพูดถึงในระดับนี้ เมื่อคุณพูดถึงมันในระดับประสิทธิภาพสำหรับผู้ดูแลระบบฐานข้อมูลพวกเขาจะกลายเป็นนักวิทยาศาสตร์จรวดและผู้คนต่างก็จบการศึกษาในระดับปริญญาตรีและฉันรู้ว่า Doctor Robin Bloor ได้ทำเช่นนั้นและเขียนหนังสือเกี่ยวกับ IBM และ แบรนด์ใหญ่อื่น ๆ ในช่วงสองสามทศวรรษที่ผ่านมา และ - มุมมองของฉันคือว่าเราผ่านช่วงเวลาหนึ่งไปแล้วที่คุณรู้ว่ากาลครั้งหนึ่งที่ฉันสามารถนั่งอยู่หน้าระบบและฉันจะดึงมันออกจากกันและแสดงให้คุณเห็น ตรงที่ปัญหาด้านประสิทธิภาพการทำงานที่บรรทัดคำสั่งหรือเครื่องมือเริ่มต้นส่วนติดต่อผู้ใช้แบบกราฟิกและเริ่มที่จะเจาะลึกลงไปในข้อมูลและบอกคุณว่าปัญหาอยู่ที่ไหนและสร้างดัชนีหรือดัชนีย่อยหรือดัชนีหลักและรองลงไป ข้อมูลและเริ่มใช้เพื่อค้นหาสิ่งต่าง ๆ แต่เมื่อคุณคิดถึงภูมิทัศน์นั้นฉันได้แสดงให้คุณเห็นว่าเรามีแบรนด์ทำและแบบจำลองหลายร้อยแบรนด์และผู้ผลิตและฐานข้อมูลประเภทต่างๆเราดีและผ่านพ้นช่วงเวลานั้นไปแล้วอย่างแท้จริงซึ่งมนุษย์สามารถสร้างได้ ความรู้สึกของประเภทของเครื่องมือฐานข้อมูลที่เรามี โดยเฉพาะอย่างยิ่งแม้ว่าเราเพิ่งกลับมาที่ชอบของ Oracle แบรนด์ที่โดดเด่นวันนี้ในแพลตฟอร์มฐานข้อมูลเชิงสัมพันธ์

จำนวนฐานข้อมูลที่พวกเขาต้องจัดการกับทั้งจากแพลตฟอร์มที่เป็นกรรมสิทธิ์เช่น ERP หรือ HR หรือระบบการเงินหรือว่าพวกเขาเป็นแพลตฟอร์มบ้านอบด้วยเหตุผลต่าง ๆ จำนวนฐานข้อมูลและตารางฐานข้อมูลและบันทึกที่เราสิ้นสุด การรับมือกับมันเป็นเรื่องทางดาราศาสตร์และคุณไม่สามารถทำได้ด้วยมือ และตอนนี้เรามีภาวะแทรกซ้อนเพิ่มเติมซึ่งครั้งหนึ่งเซิร์ฟเวอร์ฐานข้อมูลอาจนั่งอยู่ใต้โต๊ะของคุณ คุณเคยเป็นเด็กหลังเลิกเรียนฉันเคยไปและทำงานกับซอฟต์แวร์ฐานข้อมูลบน แต่เดิม Apple IIes และจากนั้นใช้ระบบที่ใช้พีซีของ DOS เช่น dBase II, dBase III ผ่านยุคของเมนเฟรมและกลาง ช่วงและแม้กระทั่ง VAXs และ PDP และบันทึกไฟล์ และเช่นเดียวกับ Saber และในที่สุดเมื่อฐานข้อมูล SQL บางส่วนเข้ามา แต่ทุกวันนี้เมื่อเรากำลังคิดเกี่ยวกับเอ็นจิ้นฐานข้อมูลพวกเขาดูเหมือนมุมล่างซ้าย เซิร์ฟเวอร์ฐานข้อมูลไม่ได้เป็นเพียงเครื่องเดียวที่วางอยู่บนพื้นใต้โต๊ะอีกต่อไป มันเป็นเครื่องหลายร้อยเครื่องที่ใช้งานสำเนาของเอ็นจิ้นฐานข้อมูลและกลุ่มและพวกมันทำการขยายข้อมูลเป็นร้อยถึงร้อยเทราไบต์ของข้อมูลหากไม่ใช่เพตาไบต์ของข้อมูลซึ่งก็คือเทราไบต์นับพัน และถึงขั้นสุดขีดดังที่นายแพทย์โรบินบลอร์กล่าวถึงกรณีการใช้งานเฉพาะบางอย่าง - สายการบิน, หน่วยงานของรัฐโดยเฉพาะ - สามารถไปที่ exabytes พวกเขายังค่อนข้างซอกแซก แต่หลายร้อยเทราไบต์และแม้กระทั่งหลายสิบเพตาไบต์ไม่ผิดปกติอีกต่อไปโดยเฉพาะอย่างยิ่งจากดอทคอมบูมจนถึงตอนนี้ประเภทของสิ่งที่เรากำลังเรียก บริษัท เว็บ 2.0 เช่น Facebook, Google, Yahoo และอื่น ๆ

นอกจากนี้เรายังมีภาวะแทรกซ้อนขณะนี้สิ่งต่าง ๆ กำลังเคลื่อนไปสู่การบริการภายนอก เรามีแพลตฟอร์มโครงสร้างพื้นฐานและซอฟต์แวร์เป็นแนวทางการให้บริการโครงสร้างพื้นฐาน และโดยเฉพาะอย่างยิ่งบริการแพลตฟอร์มที่เราไม่สามารถซื้อเพื่อคนที่ชอบ Oracle และแพลตฟอร์มคลาวด์ฐานข้อมูลและเซิร์ฟเวอร์ สิ่งนี้ทำให้เราสามารถพัฒนาแอพพลิเคชั่นได้อย่างรวดเร็วและเพียงแค่เสียบฐานข้อมูลกลับเข้าไปในเซิร์ฟเวอร์ เราไม่ต้องคิดเกี่ยวกับสิ่งที่อยู่ใต้ฝากระโปรง ข้อเสียคือเรามักจะไม่คิดเกี่ยวกับวิธีที่เราออกแบบและใช้ฐานข้อมูลกลับมาจนกว่าจะเริ่มเจ็บและประสิทธิภาพกลายเป็นปัญหาแล้วเราต้องค้นหาเครื่องมือที่เหมาะสมในการวิเคราะห์สาเหตุที่ทำให้ฐานข้อมูลของเราเจ็บปวดและ ปัญหาประสิทธิภาพอยู่ที่ไหน และมันนำกลับมาสู่ปัญหาทั่วไปที่เราได้จัดทำดัชนีข้อมูลและประเภทของดัชนีที่เราใช้สำหรับข้อมูลนั้นแล้วนำกลับไปสู่ข้อกำหนดด้านประสิทธิภาพขั้นสูง และใครบางคนที่สามารถเข้าถึงระบบที่เหมาะสมและเครื่องมือที่เหมาะสมในการปรับแต่งเอ็นจิ้นเหล่านั้นและเริ่มค้นหาฮอตสปอตและดูว่าการสืบค้นอยู่ที่ไหนที่การเคลื่อนย้ายข้อมูลประเภทของการสืบค้นโครงสร้างการสืบค้นอย่างไร ใครกำลังทำคิวรีและไม่ว่าคิวรีนั้นจะถูกจัดคิวหรือไม่และต้องถูกแคชไว้หรือไม่ คุณต้องการค้นหาการจำลองแบบอะไร

ดังนั้นเราจึงเป็นอย่างดีและอย่างแท้จริง - ในมุมมองของฉัน - ณ จุดนี้ที่แม้แต่ผู้เชี่ยวชาญด้านฐานข้อมูลที่ดีที่สุดของโลกโดยพื้นฐานแล้วสถาปนิกฐานข้อมูลของเราและผู้ดูแลฐานข้อมูลและฐานประสิทธิภาพของเราในมุมมองของฉันพวกเขาต้องการเริ่มใช้เครื่องมือที่เหมาะสม เพื่อส่งมอบการปรับแต่งดัชนีที่มีประสิทธิภาพสูงสุดสำหรับโปรแกรมฐานข้อมูลใด ๆ เนื่องจากขนาดที่เรากำลังเผชิญกับและความเร็วที่สิ่งต่าง ๆ เคลื่อนย้ายเราไม่สามารถทำได้ด้วยมือและการพยายามทำสิ่งนั้นอย่างสม่ำเสมอสามารถแนะนำปัญหาด้านประสิทธิภาพอื่น ๆ ได้เนื่องจากเราอาจไม่มีประสบการณ์ในพื้นที่นั้น เรากำลังพยายามที่จะแก้ปัญหาและฉันเชื่อว่านั่นคือสิ่งที่เรากำลังจะมอบให้เบิร์ตและเรากำลังจะพูดคุยเกี่ยวกับวิธีที่พวกเขาได้แก้ไขปัญหาที่หลากหลายนี้และประเภทของสิ่งที่เครื่องมือของพวกเขาสามารถ ทำโดยเฉพาะอย่างยิ่งสำหรับโลก Oracle เบิร์ตฉันจะส่งต่อให้คุณ

Bert Scalzo: ขอบคุณ ยินดีต้อนรับทุกคนฉันชื่อ Bert Scalzo ฉันทำงานให้ IDERA ฉันเป็นผู้จัดการผลิตภัณฑ์อาวุโสสำหรับผลิตภัณฑ์ฐานข้อมูลของเรา ฉันจะแสดงให้เห็นบางส่วนของวันนี้ แต่ฉันต้องการพูดคุยเกี่ยวกับดัชนีเพราะฉันเห็นด้วยกับทุกสิ่งที่ทุกคนพูดที่นี่โดยเฉพาะสไลด์สุดท้ายดัชนีนั้นซับซ้อนมากตอนนี้ที่คุณต้องการเครื่องมือและฉันหวังว่าจะโน้มน้าวคุณ ดังนั้นการออกแบบดัชนีของออราเคิลมันไม่ง่ายอย่างที่เคยเป็นมาในสมัยก่อน ผู้คนจำนวนมากจะไม่แน่ใจในตัวเองเมื่อพวกเขาดูตัวเลือกและฉันชอบสิ่งนี้ที่บอกว่าฉันดึงออกมาจากประวัติศาสตร์“ ในเรื่องเหล่านี้ความมั่นใจเพียงอย่างเดียวคือไม่มีอะไรแน่นอน” และนั่นคือวิธีที่ฉัน ความรู้สึกเกี่ยวกับการจัดทำดัชนีวันนี้เพราะแม้ว่าคุณคิดว่าคุณรู้คำตอบของคุณควรทำดัชนี X, Y หรือ Z คุณจะไม่แน่ใจจนกว่าคุณจะลองทำจริงเพราะบางครั้งเครื่องมือเพิ่มประสิทธิภาพเหล่านี้จะทำงานแตกต่างไปจากที่คุณคาดไว้ ดังนั้นจึงมีการลองผิดลองถูกมากมายกับการออกแบบดัชนี ในสมัยก่อนถ้าคุณต้องการดัชนีโดยทั่วไปมีเพียงสองคำถามหรือหนึ่งคำถาม มันเป็นเอกลักษณ์หรือมันไม่ซ้ำกัน? และคุณอาจนึกถึงสิ่งอื่น ๆ เช่น“ ฉันสามารถมีดัชนีได้สูงสุดเท่าไหร่ในตารางเดียว?” เพราะดัชนีมากเกินไปทำให้การแทรกการอัพเดทและการลบของคุณช้าลง คุณอาจอยู่ในระบบฐานข้อมูลของคุณมีข้อ จำกัด เกี่ยวกับจำนวนคอลัมน์ในดัชนีหลายคอลัมน์เนื่องจากบางครั้งมีข้อ จำกัด ตามหน้าหรือขนาดบล็อกของโปรแกรมฐานข้อมูลของคุณ แต่ในความเป็นจริงแล้วมันค่อนข้างง่าย ในวันเก่าที่ดี คุณจัดทำดัชนีหรือไม่ก็ได้ และจริงๆแล้วทุกอย่างอยู่ใน B-tree เราสามารถอนุญาตการทำซ้ำหรือไม่และนั่นคือเกี่ยวกับมัน ชีวิตดีชีวิตเรียบง่าย

วันนี้ชีวิตไม่ดีหรือเรียบง่าย ฉันใส่ Ghostbuster สีแดงลงไปในแบบที่เราเคยทำเพราะตอนนี้เรามี B-tree เทียบกับ bitmap และ bitmap เข้าร่วม และฉันจะอธิบายว่าสิ่งเหล่านี้บางอย่างในชั่วขณะ คลัสเตอร์และไม่ใช่คลัสเตอร์ซ้ำหรือซ้ำกันส่งต่อหรือย้อนกลับลำดับตามฟังก์ชั่นแบ่งพาร์ติชันหรือไม่แบ่งพาร์ติชัน หากมีการแบ่งพาร์ติชันเกี่ยวข้องจะเป็นการแบ่งพาร์ติชันแบบโลคัลหรือโลคัลหรือไม่? ฉันจะอธิบายเช่นกัน แล้วยังมีบางสิ่งที่เรียกว่าตารางการจัดทำดัชนี และมีอีกครึ่งโหลที่ฉันทิ้งไว้ที่นี่เพราะฉันคิดว่าตอนนี้ฉันมีเพียงพอแล้วที่จะทำให้คุณเชื่อว่าดัชนีนั้นยากกว่าที่คุณคิด ในสไลด์นี้โดยเฉพาะฉันจะเริ่มต้นในส่วนบนซ้ายของแผนภาพและฉันมีตาราง และสิ่งแรกที่ฉันต้องตัดสินใจคือขึ้นอยู่กับเวอร์ชันฐานข้อมูลของคุณและผู้จำหน่ายฐานข้อมูลของคุณพวกเขาอนุญาตให้ใช้วัตถุตารางหรือว่าเป็นเพียงความสัมพันธ์เท่านั้น? ฉันจะลงไปทางขวามือแล้วบอกว่าเรากำลังสร้างตารางสัมพันธ์ คำถามต่อไปที่ฉันต้องถามตัวเองคืออยู่ในกลุ่มหรือไม่? และคุณหลายคนที่เคยทำ Oracle มาสักพักจะจำได้ว่ากลุ่มนั้นกลับมาอีกครั้งสำหรับ Oracle 6 วัน วันนี้พวกเขาอาจจะไม่ได้ใช้งานหนักมากอีกต่อไป แต่ให้ฉันลงไปที่สาขาก่อน

ถ้าฉันจะวางตารางของฉันในคลัสเตอร์ฉันจะต้องมีดัชนีคลัสเตอร์ในตารางนั้น ตอนนี้ใน Oracle เมื่อคุณทำคลัสเตอร์ตารางคุณจะจัดเก็บแถวหรือแถวใกล้เคียงกันโดยที่ค่าใกล้เคียงกัน ดังนั้นคุณต้องมีดัชนีคลัสเตอร์และดัชนีคลัสเตอร์นั้นอาจไม่มีการแบ่งพาร์ติชัน กล่าวอีกนัยหนึ่งไม่มีวิธีการแบ่งพาร์ติชันสำหรับวิธีที่คุณทำตารางคลัสเตอร์ มันไม่มีการแบ่งพาร์ติชันอย่างเคร่งครัด และเนื่องจากไม่มีการแบ่งพาร์ติชันจึงเป็นแบบโกลบอล ฉันจะอธิบายสิ่งที่ทั่วโลกเป็นในหนึ่งนาที และมันก็เป็นต้นไม้ B อยู่เสมอ กล่าวอีกนัยหนึ่งเมื่อฉันลงไปที่สาขานั้นมันค่อนข้างง่ายฉันไม่มีทางเลือกมากมาย ตอนนี้ถ้าฉันทำดัชนีที่ไม่ได้ทำคลัสเตอร์บนตารางคลัสเตอร์ซึ่งได้รับอนุญาตในบางรุ่นก็ไม่ได้ทำพาร์ติชันอีกครั้ง เมื่อไม่มีการแบ่งพาร์ติชันตัวเลือกเดียวของคุณคือโกลบอล ดังนั้นคุณมีทางเลือกของ B-tree หรือ bitmap อีกครั้งมันขึ้นอยู่กับรุ่นของฐานข้อมูลของคุณ แต่ตอนนี้เราจะกลับไปที่ตารางความสัมพันธ์แล้วเริ่มลงทางด้านขวาอีกครั้งและตอนนี้เรากำลังจะได้ตารางที่มีความเรียบง่ายเก่าและปกติ: ความสัมพันธ์ มันจะอยู่ในพื้นที่ตาราง ฉันจะลงไปทางขวามือที่นี่ก่อน ดังนั้นจึงเป็นเรื่องขององค์กร คำถามต่อไปที่ฉันต้องถามตัวเองคือ“ ฉันต้องการแบ่งพาร์ติชันตารางนี้หรือไม่ฉัน” ตอนนี้บางครั้งคุณจะแบ่งพาร์ติชันเพราะคุณคิดว่า“ เฮ้เครื่องมือเพิ่มประสิทธิภาพจะฉลาดกว่าเกี่ยวกับวิธีปรับคิวรีให้เหมาะสม ” แต่ DBA จำนวนมากจะบอกคุณว่าเหตุผลที่คุณทำนั้นมีวัตถุประสงค์เพื่อการบริหาร หากคุณมีตารางแสนแถวถ้าคุณแบ่งมันออกเป็นพาร์ติชั่นหรือที่เก็บข้อมูลเมื่อคุณต้องการเพิ่มข้อมูลลงในที่เก็บข้อมูลล่าสุดคุณสามารถดร็อปและทำดัชนีที่มีเพียงไม่กี่ล้านแถว คุณสามารถแทรกข้อมูลนั้นจากนั้นคุณสามารถสร้างดัชนีนั้นใหม่ได้ในที่ฝากข้อมูลนั้น

ในขณะที่มันเป็นเทคนิคที่ดีสำหรับบางคนเทคนิคการปรับให้เหมาะสมเช่นการกำจัดพาร์ติชันคุณค่าที่แท้จริงของมันคือความสามารถในการจัดการหรือทำงานการบริหารในชิ้นเล็ก ๆ เมื่อฉันไปที่กององค์กรคำถามแรกคือ“ ฉันแบ่งมันหรือไม่?” ไปทางซ้ายฉันจะไม่แบ่งพาร์ติชันตาราง ตอนนี้มันอาจดูแปลก ๆ เมื่อฉันบอกคุณ แต่คุณอาจมีตารางที่ไม่ได้แบ่งพาร์ติชันแล้วคุณไม่สามารถแบ่งดัชนีดังที่คุณคุ้นเคยหรือคุณสามารถแบ่งดัชนี หยุดและคิด. ตารางของคุณมีที่เก็บข้อมูลหนึ่งใบโดยที่คุณคิดอยู่เสมอและดัชนีของคุณจะมีที่เก็บข้อมูลมากมาย เมื่อสิ่งนั้นเกิดขึ้นที่ซึ่งมีความไม่ตรงกันระหว่างจำนวนของถังและตารางและจำนวนของถังในดัชนีนั่นคือสิ่งที่มีความหมายโดยทั่วโลก ดังนั้นถ้าตารางไม่แบ่งพาร์ติชั่นและถ้าดัชนีถูกแบ่งพาร์ติชันก็ถือว่าเป็นระดับโลกเพราะมีความไม่ตรงกัน ตอนนี้ให้ฉันกลับขึ้นไปบนกององค์กรของฉันและลงมาแทนด้านพาร์ทิชัน ทีนี้ถ้าฉันมีตารางพาร์ติชั่นและสมมุติว่าตารางมีสี่ฝากข้อมูลสี่พาร์ติชันดัชนีของฉันอาจมีสี่ถังเพื่อให้ดัชนีของฉันตรงกับการออกแบบตารางของฉัน แล้วก็จบไปทางด้านขวามือ ที่จะถือว่าเป็นท้องถิ่น ดัชนีโลคัลหมายความว่าโดยทั่วไปแล้วการแบ่งพาร์ติชันของตารางและดัชนีจะทำแบบเดียวกันและมีจำนวนที่เก็บข้อมูลเท่ากัน และเมื่อฉันมีดัชนีท้องถิ่นมันอาจเป็น B-tree หรือบิตแมปและลูกศรสีเขียวนั้นก็ขึ้นไปแสดงให้คุณเห็นว่าแม้ว่ามันจะเป็น B-tree ก็ยังมีตัวเลือกที่สามารถทำได้ มันอาจเป็นไปตามฟังก์ชั่น และถ้าเป็นบิตแมปก็จะมีบิตแมปประเภทต่าง ๆ มีบางสิ่งที่เรียกว่าดัชนีการเข้าร่วมบิตแมป หากคุณกำลังทำคลังข้อมูลอยู่นั่นเป็นดัชนียอดนิยมสำหรับสคีมาหรือการออกแบบระดับดาว สิ่งที่เกิดขึ้นคือดัชนีนั้นมี ID แถวสำหรับสิ่งที่ชี้ไปที่ในตาราง แต่จะมี ID แถวสำหรับตารางหลักเพื่อที่เมื่อคุณ - คุณต้องทำการออกแบบสคีมาและคุณกำลังมองหา ที่ตารางข้อเท็จจริงดัชนีนั้นในตารางข้อเท็จจริงจะชี้ให้คุณเห็นข้อมูลที่คุณสนใจและนำคุณไปยังทุกแถวในมิติข้อมูลของคุณเพื่อที่คุณจะต้องมีเพียงดัชนีเดียว

และที่จริงสิ่งนี้เกิดขึ้นเพราะอิฐแดงซึ่งเป็นฐานข้อมูลเมื่อหลายปีก่อน - ผู้คนจำนวนมากอาจจำได้ ถ้าคุณดูรูปนี้ - และโปรดจำไว้ว่าฉันไม่ได้ใส่ทุกอย่างไว้ในรูปนี้เพราะรูปจะใหญ่กว่านี้ - ยังมีปัญหาเพิ่มเติมซึ่งฉันมีอยู่ในข้อความตรงนี้ส่วนบนขวา . เป็นดัชนีย้อนกลับหรือไม่ และคุณอาจพูดว่า“ ทำไมฉันต้องการดัชนีย้อนกลับสั่งซื้อ มันไม่มีความหมายอะไรเลย "ถ้าคุณอยู่ในสภาพแวดล้อมแบบคลัสเตอร์ใน Oracle ถ้าคุณกำลังทำกลุ่มแอพพลิเคชั่นจริงถ้าคุณเก็บดัชนีของคุณตามลำดับดังนั้นจะไม่กลับรายการถ้าคุณมีการประมวลผลจำนวนมาก ค่าเดียวกันหรือค่าดัชนีเดียวกันสิ่งที่จะเกิดขึ้นคือคุณจะมีพื้นที่ร้อนแรงของต้นไม้ B ของคุณ หมายความว่าคุณจะมีความขัดแย้งและอาจล็อกเพื่อลองและเข้าถึงสิ่งนั้นและคุณจะทำเช่นนั้นข้ามโหนดในเครือข่าย ถ้าคุณใส่ดัชนีย้อนกลับตอนนี้คุณสามารถยกเลิกได้ คุณสามารถพูดได้ว่า“ เอาละคุณค่าที่คล้ายคลึงกันนั้นอยู่ในส่วนต่าง ๆ ของต้นไม้ดังนั้นฉันจึงไม่ได้แยกโหนดของฉันเพื่อแข่งขันกับพื้นที่ร้อนในต้นไม้” จากนั้นสังเกตด้วยว่ามีเอกลักษณ์ที่ไม่สามารถใช้ได้กับตัวเลือกบางตัว . ถ้าคุณดูฉันได้เลขสาม, ห้า, แปดและสิบเอ็ดดังนั้นจึงมีบางกรณีที่ฉันไม่สามารถมีดัชนีที่ไม่ซ้ำกันได้ ในทำนองเดียวกันมีบางกรณีที่ฉันไม่สามารถมีดัชนีย้อนกลับได้และมีปัญหาเพิ่มเติมเช่นการบันทึกหรือไม่มีการบันทึกและขนานและไม่ขนาน ฉันสามารถกำหนดสิ่งต่าง ๆ ให้กับพื้นที่เฉพาะในหน่วยความจำ

และนี่ทำให้คุณสมบัติใน Oracle ค่อนข้างไม่สมบูรณ์ ฉันจะบอกว่าเมื่อคุณดู Oracle 12 อาจมีอีกประมาณครึ่งโหลสิ่งที่ฉันสามารถเพิ่มในภาพนี้ การจัดทำดัชนีนั้นซับซ้อนมากและฉันเห็นด้วยกับผู้พูดคนก่อน ๆ เพื่อที่จะสำรวจสิ่งเหล่านี้และสร้างทางเลือกที่ดีคุณต้องมีเครื่องมือ บางทีคุณอาจต้องการรูปภาพแบบนี้และวิธีการบางอย่างเกี่ยวกับวิธีการเลือกสิ่งของและหวังว่าเครื่องมือจะช่วยให้คุณไปถึงที่นั่นได้ แล้วมันจะเป็นการทดลองและข้อผิดพลาด ฉันมักจะบอกคนเกี่ยวกับการจัดทำดัชนี“ ดูก่อนที่คุณจะกระโดด” และจากนั้นคุณสามารถเห็นสุนัขตัวเล็ก ๆ ที่นี่เขากระโดดโดยไม่มองเขาจะลงเอยด้วยน้ำกับฉลามหรือคนที่พร้อมจะกระโดดลงน้ำ และเขาจะผลักดันตัวเอง คุณต้องคิดถึงการทำดัชนีเพราะการสร้างดัชนีไม่ได้หมายความว่าสิ่งต่าง ๆ จะดีขึ้นเสมอไป ในความเป็นจริงการสร้างดัชนีอาจทำให้สิ่งต่าง ๆ ช้าลง และประสิทธิภาพการสืบค้นอาจเป็นลำดับความสำคัญที่ดีกว่าโดยมีตัวเลือกหนึ่งเป็นอีกตัวเลือกหนึ่ง และฉันจะให้ตัวอย่างที่ดีแก่คุณ หากคุณกำลังทำแผนผังดาวของการออกแบบและในตารางมิติคุณใช้ดัชนีบิตแมปในกรณีหนึ่งและอีกกรณีที่คุณพูดว่า“ ฉันจะใช้ดัชนีต้นไม้ B” คุณจะมีบิตแมปเทียบกับ B- ต้นไม้. ฉันสามารถบอกคุณได้ว่าวิธีแก้ปัญหาหนึ่งจะเป็นลำดับความสำคัญหรืออาจเรียงลำดับขนาดได้เร็วกว่าอีกอัน แต่โปรดทราบว่าการทำงานในสภาพแวดล้อมเดียวเช่นในสภาพแวดล้อมการจัดเก็บข้อมูลอาจไม่ใช่ทางเลือกที่ดีในสภาพแวดล้อม OLTP

ตัวอย่างเช่นถ้าคุณต้องใช้ตารางธุรกรรมและวางดัชนีบิตแมปบนตารางธุรกรรมนั้นมีราคาแพงในการคำนวณและรีเซ็ตบิตแมปสตริงที่ยาวเหล่านี้และในตาราง OLTP คุณอาจเข้าสู่ตารางอย่างหนักจนบิตแมป ดัชนีอาจเสียหายและทำให้ระบบของคุณช้าลงเพราะไม่ได้มีไว้สำหรับอัพเดต มันยอดเยี่ยมสำหรับการเข้าถึงที่รวดเร็ว แต่ไม่ดีสำหรับการอัปเดต ฉันคิดว่าดัชนีใช้เวลาลองผิดลองถูก ไม่มีกฎทองคำอีกต่อไป - มีตัวแปรที่แตกต่างกันมากเกินไปในสมการนี้เพื่อทราบ - และท้ายที่สุดคุณจะต้องดูการดำเนินการหรืออธิบายแผนในฐานข้อมูลของคุณเพื่อดูว่าคุณเลือกได้ดีหรือไม่ และบางครั้งการวิเคราะห์แผนเกือบจะเป็นวิทยาศาสตร์แก่ตัวเอง ฉันจะไม่พูดถึงเรื่องนี้ในวันนี้ - นั่นเป็นอีกหัวข้อ - แต่อย่านำการออกแบบดัชนีมาพิจารณา มีเหตุผลที่ถูกต้องว่าทำไมมีดัชนีบ้าเหล่านี้ทั้งหมดที่ฉันแสดงให้คุณเห็นในภาพก่อนหน้าและผู้พูดคนก่อนพูดถึง สิ่งเหล่านี้ไม่ได้ถูกสร้างขึ้นเพียงเพราะมันเป็นคุณสมบัติที่ประณีตในการวางรายการตรวจสอบบางแห่งสำหรับผู้ขายฐานข้อมูล มีกรณีการใช้งานหรือสถานการณ์ที่ดัชนีเหล่านี้มีความสำคัญและจะสร้างความแตกต่างอย่างมีนัยสำคัญ ตอนนี้ฉันจะแสดงตัวอย่างของดัชนีประเภทต่างๆในเครื่องมือของเรา ขอผมขึ้นหน้าจอหน่อยเพื่อคุณจะได้เห็น โอเคดังนั้นที่นี่ฉันนั่งอยู่ข้างใน - ให้ฉันย่อขนาดแอปพลิเคชันนี้ให้เล็กลง ฉันกำลังนั่งอยู่ใน VMware และฉันใช้ Windows Server 2012 VM

และคุณจะเห็นว่าฉันมีเครื่องมือทุกอย่างที่มนุษย์รู้จักกันดี ในฐานะผู้จัดการผลิตภัณฑ์ฉันต้องคอยระวังการแข่งขันของฉันดังนั้นมันจึงไม่ใช่แค่ว่ามีเครื่องมืออะไร แต่คู่แข่งของฉันทำอะไร และเรามีเครื่องมือนี้ที่เรียกว่า DBArtisan ซึ่งฉันได้วิ่งไปแล้ว แต่ฉันจะไป - ดังนั้นฉันจะเอามันขึ้นมา และสิ่งที่คุณเห็นคือเครื่องมือที่ดีจริงๆเพราะแทนที่จะต้องใช้ให้ใช้ตัวจัดการองค์กรสำหรับ Oracle และ SQL Management Studio สำหรับ SQL Server และ MySQL Workbench สำหรับ MySQL และฐานข้อมูลอื่นที่เราสนับสนุน ดีฉันมีฐานข้อมูลทั้งหมดของฉันอยู่ในเครื่องมือนี้ มี DB2 มี MySQL, Oracle, Postgres, SQL Server และ Sybase และนั่นคือ - ฉันมีฐานข้อมูลเพียงหกรายการในสิ่งนี้เพราะฉันทำไม่ได้ - เครื่องมือรองรับฐานข้อมูลสิบสองตัว แต่ VM ของฉันแย่ใช้ฐานข้อมูลหกฐานพร้อมกันและพยายาม การสาธิตเป็นเรื่องเกี่ยวกับเท่าที่ฮาร์ดแวร์ของฉันจะอำนวยความสะดวก ดังนั้นให้ฉันกลับไปสู่ ​​Oracle ตอนนี้และถ้าคุณสังเกตเห็นสิ่งเหล่านี้เหมือนกันทั้งหมด ถ้าฉันต้องการวัดประสิทธิภาพของฉันใน DB2 มันเป็นตัวเลือกเดียวกับที่ฉันมีใน Oracle ตอนนี้ภายใต้หน้าปกเราทำสิ่งต่าง ๆ มากมายดังนั้นคุณไม่จำเป็นต้องรู้ว่าเกิดอะไรขึ้น แต่เราให้อินเทอร์เฟซที่สอดคล้องกับคุณเพื่อให้คุณสามารถเป็นผู้เชี่ยวชาญด้วยแพลตฟอร์มฐานข้อมูลที่หลากหลาย และนั่นรวมถึงการทำงานกับดัชนีหัวข้อของการสนทนานี้

ให้ฉันเข้ามาที่นี่ก่อนอื่นให้ฉันเริ่มจากดูที่ตารางและฉันมีฐานข้อมูลภาพยนตร์ที่มีเพียงไม่กี่ตาราง และถ้าฉันดูตารางเฉพาะเช่นตารางลูกค้าเมื่อฉันนำมันมาที่นี่ฉันสามารถเห็นการออกแบบตารางของฉันนี่คือคอลัมน์ของฉันในตารางของฉันและนี่คือข้อมูลเกี่ยวกับแต่ละคอลัมน์ ฉันมีคุณสมบัติสำหรับตาราง แต่โปรดทราบว่าฉันมีแท็บที่นี่สำหรับดัชนีและฉันสามารถดูได้ที่นี่คือดัชนีบนตาราง ขอให้สังเกตว่าหนึ่งในดัชนีเหล่านี้คือดัชนี PK ของฉันคีย์หลักของฉัน คนอื่น ๆ เหล่านี้ดูเหมือนจะเป็นเพียงดัชนีสำหรับการปรับปรุงการเข้าถึงแบบสอบถามบางทีเราอาจสืบค้นตามชื่อหรือนามสกุลหรือดูที่โทรศัพท์และรหัสไปรษณีย์ และถ้าฉันเลือกดัชนีเฉพาะเช่นรหัสไปรษณีย์นี้ที่นี่และฉันคลิกสองครั้งที่มันตอนนี้ฉันสามารถเห็นได้ว่าเฮ้มันเป็นดัชนีที่ไม่ซ้ำกันและนี่คือประเภทบิตแมปอื่นที่ไม่ซ้ำกัน ไม่ซ้ำกันไม่ว่าจะถูกเรียงลำดับหรือไม่ก็ตามการบันทึกนั้นจะเรียงลำดับย้อนกลับหรือไม่ก็ตามว่าเป็นฟังก์ชันพื้นฐานหรือไม่ โอ้นี่คือความสนุกที่ฉันไม่ได้ครอบคลุม จริงๆคุณสามารถมีดัชนีที่มองไม่เห็น และคุณจะพูดว่า“ เอาหล่ะทำไมฉันถึงอยากทำดัชนีที่มองไม่เห็น?” ทีนี้ฉันจะยกตัวอย่างให้คุณ คุณอยู่ในระบบการผลิตของคุณและคุณมีปัญหาด้านประสิทธิภาพและคุณไม่แน่ใจว่าการสร้างดัชนีจะแก้ไขปัญหาได้ดังนั้นคุณไม่ต้องการสร้างดัชนีและทำให้การผลิตช้าลง แต่อย่างใดหรืออย่างอื่นที่คุณต้องการ สามารถทดสอบได้ คุณสามารถสร้างดัชนีในการผลิตที่มองไม่เห็นซึ่งหมายถึงรหัสแอปพลิเคชันไม่มากนักที่เรียกเครื่องมือเพิ่มประสิทธิภาพจะใช้ดัชนีนั้น มันถูกสร้างขึ้นมันถูกต้อง แต่จะไม่ถูกใช้ จากนั้นคุณสามารถใช้แบบสอบถามที่คุณคิดว่าดัชนีนี้จะช่วยหรือชุดของแบบสอบถามและคุณสามารถติดคำใบ้และพูดว่า "เฮ้เครื่องมือเพิ่มประสิทธิภาพมีดัชนีที่มองไม่เห็นออกมีฉันต้องการให้คุณใช้และปล่อยให้ ฉันรู้ว่าฉันทำสิ่งต่าง ๆ ได้ดีขึ้นหรือไม่” และตอนนี้ฉันได้ทดสอบบางอย่างในการผลิต แต่ฉันไม่ได้ขาดแอพพลิเคชั่นที่กำลังทำงานอยู่ นั่นคือการใช้ดัชนีที่มองไม่เห็น มันจะเป็นใบ้เมื่อคุณได้ยินครั้งแรกเกี่ยวกับมัน แต่มันมีประโยชน์

นอกจากนี้เรายังสามารถกำหนดดัชนีว่าพวกเขาขนานกันหรือไม่และมีกี่กรณีที่ขนานกัน ขณะนี้ในสภาพแวดล้อมของคลัสเตอร์แอปพลิเคชันที่ไม่เป็นคลัสเตอร์หรือไม่ใช่ของจริงดังนั้นที่ไม่ใช่ชั้นวาง, แบบขนานจะหมายถึงว่ากระบวนการย่อยจำนวนมากที่แบบสอบถามของฉันสามารถนำขึ้นมาลองใช้และกระบวนการของผู้ปฏิบัติงาน . และอินสแตนซ์แบบขนานจะเป็นถ้าฉันอยู่ในกลุ่มแอปพลิเคชันจริงพูดว่าฉันมีโหนดสิบโหนดฉันจะได้รับอนุญาตให้แบ่งจำนวนโหนดได้เท่าไร อาจเป็นสี่ในสิบและในแต่ละกระบวนการย่อยสี่ขั้นตอน นั่นเป็นตัวอย่าง แล้วเรามีการบีบอัดข้อมูลที่สำคัญ คุณสามารถบีบอัดดัชนีจริง ๆ ใช่หรือไม่. และแน่นอนว่าคุณมีพารามิเตอร์หน่วยเก็บข้อมูลที่คุณสามารถระบุในดัชนีได้ ตอนนี้ฉันไม่ได้ครอบคลุมสิ่งเหล่านี้เพราะพวกเขาเป็นพารามิเตอร์การจัดเก็บมากกว่าปัญหาดัชนี และในที่สุดเรามีหรือไม่ที่จะทำให้พาร์ติชันเหล่านี้หรือไม่พาร์ติชัน ขอผมดรอปที่นี่สักครู่ ฉันจะไปที่คีมาที่แตกต่างกัน นี่คือสคีมารูปดาวและตัวอย่างเช่นตารางรอบระยะเวลานี้เป็นตารางส่วนข้อมูล หากคุณเคยออกแบบสคีมาของสตาร์คุณมักจะมีมิติเป็นระยะเวลาหนึ่งในฐานข้อมูลนี้และสคีมาของดาวนี้ระยะเวลาเป็นมิติเวลา ตอนนี้ฉันรู้ว่ามันจะดูตลกคุณจะพูดว่า“ ดูสิคอลัมน์ทั้งหมด - ผู้ชายที่เคยได้ยินเกี่ยวกับการทำให้เป็นมาตรฐาน?” เมื่อคุณอยู่ในคลังข้อมูลหรือการออกแบบสคีมาคุณ โดยทั่วไปแล้วจะไม่มีตารางคุณจะมีตารางที่บุคคลทั่วไปจะมองและพูดว่า“ Gee สิ่งเหล่านี้ไม่ได้ออกแบบมาอย่างดี” แต่นั่นคือวิธีที่คุณทำในสภาพแวดล้อมการจัดเก็บข้อมูล

ตอนนี้ดูว่าจะเกิดอะไรขึ้นเพราะโอเคมีคอลัมน์เหล่านี้ทั้งหมดแล้วดูนั่นฉันมีดัชนีในทุกคอลัมน์ ตอนนี้ในสภาพแวดล้อม OLTP ที่น่าจะไม่ใช่ มันจะทำให้การปฏิบัติการทั้งหมดของฉันช้าลง ในสภาพแวดล้อมคลังข้อมูลฉันจะปล่อยพวกเขาในระหว่างรอบการโหลดแบทช์ของฉัน โหลดโดยไม่มีค่าใช้จ่ายหรือดัชนีและฉันจะสร้างดัชนีใหม่ และถ้าฉันแบ่งพาร์ติชันตารางของฉันแล้วแทนที่จะต้องวางดัชนีสำหรับที่เก็บข้อมูลทุกชุดในตารางฉันสามารถวางดัชนีลงในที่ฝากข้อมูลหรือที่เก็บข้อมูลที่จะเข้าสู่รอบการโหลดแบตช์นั้น จากนั้นสร้างเพียงส่วนดัชนีสำหรับที่เก็บเหล่านั้น และนั่นทำให้สามารถจัดการได้ง่ายมาก และถ้าฉันดู - นี่คือคอลัมน์ที่เรียกว่า "Holiday Flag" และโดยทั่วไปก็คือใช่หรือไม่ ขอให้สังเกตว่านี่เป็นดัชนีบิตแมปและสำหรับคุณส่วนใหญ่คุณจะพูดว่า“ เอาล่ะนั่นสมเหตุสมผล” ใช่หรือไม่ใช่ใช่หรือไม่ใช่มีสองค่าที่สมเหตุสมผล และเนื่องจากเมื่อคุณอ่านเอกสารสำหรับดัชนีบิตแมปพวกเขามักจะบอกคุณว่าเลือกสิ่งที่มีระดับความสำคัญต่ำ

ตอนนี้ให้ฉันไปที่หนึ่งในตารางความจริงของฉันดังนั้นที่นี่เรามีคำสั่งของฉัน และนี่คือคำสั่งซื้อของฉันต่อวัน คุณจะเห็นแล้วว่าอีกครั้งฉันมีคอลัมน์ค่อนข้างน้อยและอีกครั้งฉันจะมีดัชนีมากกว่าสองสามครั้ง และที่นี่เรามีบางอย่างที่เรียกว่ารหัสราคาสากล นี่เป็นร้านค้าปลีกดังนั้นคุณจึงรู้บาร์โค้ดเล็ก ๆ เหล่านี้เมื่อคุณซื้อของที่ร้านนี่คือรหัสราคาสากล ขณะนี้มีรหัสราคาสากลนับล้าน ตอนนี้สำหรับ บริษัท นี้ที่ขายสิ่งของพวกเขาอาจมีรหัสราคาสากล 1.7 ถึง 2 ล้านดังนั้นคุณจะคาดหวังว่านี่จะไม่เป็นดัชนีบิตแมปเนื่องจาก 1.7 ล้านค่าที่ต่างกันฟังดูมีความสำคัญสูง แต่ในความเป็นจริงในสภาพแวดล้อมคลังข้อมูลคุณต้องการให้สิ่งนี้เป็นบิตแมป ตอนนี้ให้ฉันอธิบายว่าทำไม อาจมี 1.7 ล้านค่าที่แตกต่างกันสำหรับรหัสราคาสากลนี้จำนวนแถวในตารางคำสั่งนี้อยู่ในหลายร้อยล้านถึงพันล้านแถว ดัชนีของฉันมีความสำคัญต่ำเมื่อเทียบกับขนาดหรือความสำคัญของตาราง นั่นทำให้ความสำคัญต่ำ สิ่งนี้ทำให้ดัชนีบิตแมปมีประโยชน์แม้ว่ามันจะใช้งานง่ายด้วย 1.7 ล้านค่าที่แตกต่างที่คุณจะเลือกบิตแมปที่นี่ ตอนนี้ถ้าฉันรู้ว่าฉันต้องการใช้ดัชนีการเข้าร่วมบิตแมปในขณะนี้ผลิตภัณฑ์ไม่สนับสนุนสิ่งนั้นฉันจะได้รับการเพิ่มเข้ามาในรุ่นถัดไป แต่นั่นจะเป็นอีกทางเลือกหนึ่งที่นี่ และในสคีมาของดาวจำไว้ว่าดัชนีบิตแมปจะอยู่ในตารางข้อเท็จจริงและดัชนีหนึ่งในต้นไม้ B จะชี้ไปที่แถวในตารางข้อเท็จจริงแล้วไปยังทุกแถวที่ปรากฏในตารางมิติสำหรับข้อเท็จจริงนั้น . และคุณมีทางเลือกอื่นที่นั่น ทีนี้มาดูกันว่าฉันอยากออกมาจากตารางแล้วฉันอยากแสดงให้คุณเห็นอย่างรวดเร็วว่าฉันมีข้อมูลเดียวกันภายใต้ดัชนีและฉันจะทำสิ่งพื้นฐานแบบเดียวกัน

ตอนนี้เหตุผลที่ฉันนำเรื่องนี้ขึ้นมาคือคุณอาจสังเกตเห็นว่าเฮ้ไม่มีกุญแจหลักอยู่ที่นี่ คีย์หลักถูกสร้างขึ้นด้วยข้อ จำกัด ของคีย์ดังนั้นจึงถูกครอบคลุมโดยนิยามของข้อ จำกัด เหล่านี้จะเป็นดัชนีที่ไม่ได้เป็นส่วนหนึ่งของข้อ จำกัด ทีนี้คุณอาจพูดว่า“ เอาล่ะเดี๋ยวก่อนนั่นอาจดูเหมือนรหัสต่างประเทศและรหัสต่างประเทศเป็นข้อ จำกัด ” แต่รหัสต่างประเทศและฐานข้อมูลส่วนใหญ่จะไม่สร้างดัชนีในคอลัมน์คีย์ภายนอกโดยอัตโนมัติแม้ว่าจะเป็น แนะนำให้เลือกและไปที่นั่น - ฉันมีตัวเลือกเดียวกันทั้งหมดอีกครั้ง และถ้าฉันต้องการเปลี่ยนเพียงเพื่อบีบอัดฉันสามารถทำได้

ตอนนี้การบีบอัดใช้งานได้กับดัชนี B-tree เท่านั้น สิ่งที่อนุญาตคือเมื่อคุณดูที่โหนดต่าง ๆ ใน B-tree จะอนุญาตให้มีการบีบอัดค่าบางค่า มันไม่ได้บีบอัดเหมือนการบีบอัดตาราง แต่เป็นการบีบอัดของที่เก็บไว้ใน B-tree ในโหนดที่ไม่ใช่ใบไม้ มันไม่ได้ประหยัดพื้นที่มากมาย แต่มันสามารถสร้างความแตกต่างได้ และด้วยการที่ฉันสังเกตเห็นว่าฉันได้รับใกล้เวลาดังนั้นสิ่งที่ฉันต้องการจะทำคือฉันต้องการกลับไปและหยุดการแบ่งปันของฉัน และเรามีผลิตภัณฑ์ของเราออกมาเพื่อทดลองใช้งานสิบสี่วันที่ idera.com มันเป็นผลิตภัณฑ์ที่ดีโดยเฉพาะอย่างยิ่งถ้าคุณทำงานกับหลายฐานข้อมูลแพลตฟอร์ม หากคุณทำงานกับฐานข้อมูลที่แตกต่างกันสองหรือสามเครื่องมือนี้จะทำให้ชีวิตของคุณง่ายขึ้นมาก เรามีเครื่องมือที่จะช่วยคุณในการออกแบบและเลือกดัชนีเรามีเครื่องมือที่เรียกว่า DB Optimizer ฉันไม่สามารถครอบคลุมในวันนี้ว่าจะมากเกินไป และถ้าคุณต้องการที่จะติดต่อฉันมีที่อยู่อีเมลของฉันมันหรือคุณสามารถจับฉันที่อีเมลส่วนตัวของฉันและฉันมีบล็อกฉันมีเว็บไซต์และบล็อกและโปรไฟล์ LinkedIn ที่นั่น ดังนั้นอย่าลังเลที่จะติดต่อฉันในเรื่องใด ๆ ถึงแม้ว่ามันจะไม่เกี่ยวข้องกับผลิตภัณฑ์หากคุณเพียงต้องการพูดคุยกับฐานข้อมูลฉันเป็นคนที่มีหัวใจและฉันชอบพูดมากเกี่ยวกับ technobabble

Eric Kavanagh: เอาล่ะดีเอซโรบินฉันแน่ใจว่าคุณมีคำถามสองสามข้อเป็นอย่างน้อยเราเหลือเวลาอีกไม่กี่นาที คุณคิดอย่างไร

Dez Blanchfield: ฉันมีคำถามที่ยอดเยี่ยมข้อหนึ่งที่ฉันต้องถามคุณมันนั่งอยู่ที่ด้านหลังของใจ สถานการณ์เลวร้ายที่สุดที่คุณเคยเห็นคืออะไร? ฉันได้อ่านบล็อกของคุณฉันติดตามคุณอย่างใกล้ชิดคุณเป็นคุณอาจเป็นหนึ่งในไม่กี่คนที่อาศัยอยู่ในแทบทุกสิ่งและฉันคิดว่า Dr. Robin Bloor เป็นคนที่สองที่ฉันได้พบ อายุการใช้งานของฉัน แต่คุณรู้ไหมคุณอาจเคยเห็นทุก ๆ สถานการณ์ที่บ้าคลั่งอะไรคือสถานการณ์ที่บ้าที่สุดที่คุณเคยเห็นมาและคุณก็เหมือนมนุษย์ที่ไม่สามารถรับมือได้คุณสามารถเดินได้ และเล่นกลจิตใจเจไดกับ DBArtisan ทั้งหมดนี้หรือไม่?

Bert Scalzo: เรามีลูกค้าคนหนึ่งในการออกแบบฐานข้อมูลของพวกเขาพวกเขาคิดอย่างมากว่าพวกเขาจะคิดอย่างไรในการออกแบบเลย์เอาต์ของไฟล์และดังนั้น - เมื่อคุณทำให้ฐานข้อมูลเป็นมาตรฐานสิ่งแรกที่คุณพยายามทำคือกำจัด ของกลุ่มซ้ำ พวกเขามีคอลัมน์และทำให้มันยาวหรือ BLOB หรือ CLOB และในนั้นพวกเขาจะใส่ค่าหมายเลขหนึ่งเซมิโคลอนค่าหมายเลขสองเซมิโคลอนหมายเลขค่าเซมิโคลอนและพวกเขาจะมีหลายพันค่า ในนั้น แต่พวกเขาจำเป็นต้องค้นหาในคอลัมน์นั้นและพวกเขาต้องการ“ ทำไมสิ่งนี้ทำงานช้ามาก” และฉันชอบ“ ดีคุณไม่สามารถสร้างดัชนีในสิ่งที่คุณทำมันเป็นเพียง ไม่ได้รับอนุญาต” ดังนั้นเราแสดงให้พวกเขาเห็นจริง ๆ โดยใช้แผนว่าสิ่งที่พวกเขาต้องทำคือทำให้ตารางนั้นเป็นมาตรฐาน ไม่ใช่เพราะการทำให้เป็นมาตรฐานเป็นแบบฝึกหัดทางวิชาการที่ทำให้สิ่งต่าง ๆ ดีขึ้น แต่เพราะพวกเขาต้องการแบบสอบถามในฟิลด์นั้นซึ่งหมายความว่าพวกเขาต้องการที่จะสามารถจัดทำดัชนีได้และคุณไม่สามารถจัดทำดัชนีในกลุ่มซ้ำหรืออย่างน้อยก็ไม่ง่าย . และนั่นอาจเป็นสิ่งที่แย่ที่สุดที่ฉันเคยเห็น

Dez Blanchfield: ใช่มันน่าสนใจว่าคุณเจอบ่อยแค่ไหนฉันคิดว่าความท้าทายกับฐานข้อมูลผู้คนลืมไปแล้วว่ามันเป็นวิทยาศาสตร์ และมีคนที่ทำองศาและปริญญาเอกในพื้นที่ทั้งหมดนี้เขียนบทความลงบนนั้นและคุณได้เขียนย้อยทั้งหมดรวมถึงคู่มือ TOAD ของคุณและสิ่งอื่น ๆ จากความทรงจำ แนวโน้มต่อการเรียงลำดับของคำพูด "ข้อมูลขนาดใหญ่" ในขณะนี้ - ฉันเห็นผู้คนจำนวนมากลืมพื้นฐานของสถาปัตยกรรมฐานข้อมูลและเทคโนโลยีฐานข้อมูลวิทยาศาสตร์ฐานข้อมูลถ้าคุณชอบ สิ่งที่คุณเห็นในสนามเท่าที่เปลี่ยนจากแพลตฟอร์มฐานข้อมูลดั้งเดิมและฐานข้อมูลแบบเดิมที่คิดว่าเราทำได้อย่างมีประสิทธิภาพและเป็นเพียงกรณีของการปรับแต่งและปรับขนาด คุณเห็นคนจำนวนมากเรียนรู้และมีประสบการณ์ที่พวกเขานั่งอยู่ที่นั่นและมีช่วงเวลา "a-ha" เช่นช่วงเวลาของยูเรก้าที่พวกเขารู้ว่าสิ่งที่ข้อมูลขนาดใหญ่นี้เป็นเพียงแค่ฐานข้อมูลขนาดใหญ่จริง ๆ นั่นคือสิ่งที่ออกมาและผู้คนต่างก็ตอบคุณกลับมาและแบบว่า“ เราลืมไปแล้วสิ่งที่เรารู้และคุณจะพาเรากลับจากด้านมืดได้ไหม”

Bert Scalzo: ดีไม่และนี่เป็นเรื่องที่น่ากลัวมากที่ต้องยอมรับ แต่ผู้ค้าฐานข้อมูลเชิงสัมพันธ์ก็ดื่ม Kool-Aid เช่นกัน หากคุณจำได้ว่าฉันไม่รู้ประมาณสิบปีที่แล้วเราเริ่มใส่ข้อมูลที่ไม่มีโครงสร้างลงในฐานข้อมูลเชิงสัมพันธ์ซึ่งเป็นเรื่องแปลกที่ต้องทำแล้วจากนั้นข้อมูลฐานข้อมูลเชิงสัมพันธ์กำลังเพิ่มประเภท NoSQL สิ่ง อันที่จริงแล้วใน Oracle 12, CR2 - ฉันรู้ว่ายังไม่ออก - แต่ถ้าคุณดูเบต้าถ้าคุณอยู่ในโปรแกรมเบต้ามันสนับสนุนการใช้ชิ้นส่วน ตอนนี้คุณก็มีฐานข้อมูลเชิงสัมพันธ์ที่ไม่ได้เพิ่มแนวคิดจาก NoSQL sharding ดังนั้นช่วงเวลา "a-ha" ดูเหมือนจะมากกว่าสำหรับคนในด้านความสัมพันธ์ที่กำลังจะ "a-ha." ไม่มีใครที่จะทำมันได้อีกเลยแม้แต่ผู้จัดการฐานข้อมูลดังนั้นเราจึงได้ ได้ไปมากกว่าและเข้าร่วมด้านมืด

Dez Blanchfield: ใช่แล้วคุณกำลังพูดถึงการเปลี่ยนแปลงไปสู่ข้อมูลที่ยุ่งเหยิงมากมายถ้าฉันเข้าใจถูกต้องสิ่งที่เรากำลังเรียกว่าแพลตฟอร์มข้อมูลขนาดใหญ่ซึ่งเป็นเรื่องตลกเพราะพวกเขากำลัง ไม่เก่า แต่นั่นไม่ได้หมายความว่าพวกเขากำลังมุ่งเน้นไปที่สิ่งที่พวกเขากำลังทำกับฐานข้อมูลเชิงสัมพันธ์ของพวกเขาเพื่อให้ได้เงินมากขึ้น

Bert Scalzo: ไม่ปกติหากพวกเขามีความต้องการใน - ที่ได้รับการอ้างถึง "ความต้องการประเภทข้อมูลขนาดใหญ่" พวกเขาพบว่าแทนที่จะต้องไปที่แพลตฟอร์มฐานข้อมูลอื่น ๆ และทำสิ่งที่ไม่ใช่ - วิธีการเชิงสัมพันธ์ผู้จำหน่ายฐานข้อมูลกำลังให้เทคนิคที่ไม่ใช่เชิงสัมพันธ์แบบเดียวกันกับฐานข้อมูลเชิงสัมพันธ์ของพวกเขาเพื่อทำสิ่งเหล่านั้น ฉันหมายถึงตัวอย่างที่ดีคือถ้าคุณมีข้อมูลที่ไม่มีโครงสร้างเช่นชนิดข้อมูล JSON หรือชนิดข้อมูลที่ซับซ้อนอื่น ๆ ที่มีความหมายฝังอยู่ในตัวข้อมูลผู้จำหน่ายฐานข้อมูลไม่เพียงสนับสนุน แต่พวกเขาจะให้กรด การปฏิบัติตามข้อมูลที่ไม่มีโครงสร้าง ฐานข้อมูลเชิงสัมพันธ์ได้นำเอาเทคนิคและเทคโนโลยีใหม่ ๆ มาใช้แล้วดังนั้น“ a-ha” ก็ดูเหมือนจะไม่ใช่อย่างนั้นอีกแล้ว“ เฮ้เราผู้พัฒนาแอปพลิเคชันไม่ได้เรียนรู้อะไรบางอย่างและเราจำเป็นต้องเรียนรู้อีกครั้ง” เราทำด้วยวิธีนี้แล้วฉันจะทำอย่างนั้นในฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมของคุณได้อย่างไรและทำอย่างที่ฉันทำในฐานข้อมูลนี้ตรงนี้ไหม” และมันก็กำลังแพร่หลายมากขึ้นและอย่างที่ฉันพูดผู้จำหน่ายฐานข้อมูลกำลังเปิดใช้งาน ที่.

Dez Blanchfield: ใช่แล้วใครคือผู้ต้องสงสัยแบบดั้งเดิมในพื้นที่นี้สำหรับเครื่องมือ DBArtisan และนั่น? ฉันทำการบ้านกับสิ่งที่คุณเขียนเมื่อเร็ว ๆ นี้และจากความทรงจำที่คุณเขียนบางอย่างฉันคิดว่ามันเป็นหนึ่งในบล็อกของคุณเกี่ยวกับประสิทธิภาพของฐานข้อมูลที่รุนแรงในโลก Oracle ฉันจำไม่ได้ว่าเมื่อไหร่ฉันคิดว่าบางครั้งในปีนี้จากความทรงจำหรือเมื่อปลายปีที่แล้วคุณเขียนสิ่งนี้ และสำหรับฉันแล้วมันเป็นเรื่องธรรมดาที่สงสัยว่าเป็นหัวข้อประเภทที่เรากำลังพูดถึงในวันนี้ที่ซึ่งผู้คนจะเข้าสู่สภาพแวดล้อมฐานข้อมูลขนาดใหญ่มากและมองหาสิ่งที่คุณเรียกว่าได้รับผลประโยชน์มหาศาล ใครคือผู้ต้องสงสัยตามปกติที่คุณเห็นว่ามีใครกำลังทำ DBArtisan และนำไปใช้ให้เกิดประโยชน์

Bert Scalzo: ในความเป็นจริงเรามีลูกค้าจำนวนมากในวันนี้ฉันอยู่กับหน่วยงานภาครัฐที่ใหญ่มาก - และพวกเขาอาจมีซอฟต์แวร์ของเราเกือบ 1, 000 สำเนาเพราะมันช่วยให้ผู้คนสนใจสิ่งที่พวกเขาต้องการ กำลังทำอยู่และไม่ใช่วิธีที่จะทำ และมันก็โอเคฉันหมายความว่าทุกคนควรรู้วิธีที่จะทำอะไรบางอย่าง แต่การผลิตจะได้รับ "สิ่งที่" ทำ หากธุรกิจขอให้ฉันทำงานนั่นคือทั้งหมดที่พวกเขาสนใจฉันจะได้เครื่องหมายถูกเมื่อใดเมื่อพูดถึงงานที่ทำ ไม่ใช่เทคนิคใดที่ฉันใช้เพื่อไปที่นั่น ดังนั้นเครื่องมือของเราช่วยให้พวกเขามุ่งเน้นไปที่สิ่งต่าง ๆ และช่วยให้พวกเขามีประสิทธิผลมากขึ้นและนั่นเป็นข้อได้เปรียบอย่างมากจริง ๆ และอย่างที่ฉันบอกว่าฐานข้อมูลบางตัวเสนอเครื่องมือสำหรับแพลตฟอร์มฐานข้อมูล เราเสนอให้กับสิบสองแพลตฟอร์มฐานข้อมูล ฉันมีเวิร์กโฟลว์เดียวกันส่วนติดต่อผู้ใช้แบบกราฟิกเดียวกันการนำทางเดียวกัน หากคุณรู้วิธีให้สิทธิ์แก่ผู้ใช้หรือวิธีสร้างตารางหรือสร้างดัชนีในฐานข้อมูลคุณสามารถทำได้ทั้งสิบสองเพราะเป็นรูปลักษณ์และความรู้สึกเดียวกันและเวิร์กโฟลว์เดียวกัน นั่นมีค่ามากสำหรับลูกค้าของเรา

Dez Blanchfield: ใช่ฉันเดาว่าผู้คนต้องการได้รับผลตอบแทนมากกว่าจากทรัพยากรมนุษย์ของพวกเขา และวันที่มีผู้เชี่ยวชาญเฉพาะใน Oracle, Ingres และ DB2 หมดไป ผู้คนคาดหวังว่าจะเป็นแจ็คของธุรกิจการค้าดังนั้นฉันคิดว่าสิ่งนี้ได้ช่วยชีวิตพวกเขาอย่างแน่นอน

สิ่งหนึ่งที่รวดเร็วก่อนที่จะส่งมอบให้หมอ Robin Bloor คุณกล่าวว่ามีการดาวน์โหลดฟรีสิบสี่วันทำอะไร - ถ้าฉันจะไปข้างหน้าและฉันจะทำอย่างนั้นโดยวิธีฉันจะวางไว้ในห้องปฏิบัติการเทคโนโลยี Bloor และหมุนสิ่งนี้ และรับมือกับมันด้วยตัวเอง - ฉันไม่มีโอกาสทำเช่นนั้นมาก่อนวันนี้ คุณพูดถึงการทดลองใช้สิบสี่วันคุณบอกว่าคุณกำลังใช้งานบน VM บนคอมพิวเตอร์ของคุณฉันถือว่าเป็นแล็ปท็อป อะไรคืออะไรการตั้งค่าระดับเริ่มต้นสำหรับใครบางคนที่จะรับมือและใช้การทดลองใช้สิบสี่วันก่อนที่ฉันจะตอบคำถามของเขากับโรบิน?

Bert Scalzo: ทุกสภาพแวดล้อมของ Windows ดังนั้น Windows 7, เครื่องเสมือนที่มี CPU หนึ่งตัวและหน่วยความจำสี่กิกะไบต์ เราไม่ใช่เครื่องมือที่อ้วนหรือแพง ตอนนี้ถ้าคุณต้องการเรียกใช้เซิร์ฟเวอร์ฐานข้อมูลของคุณบน VM เดียวกันภายใต้ Windows เดียวกันใช่คุณจะต้องเพิ่มมากขึ้น แต่ถ้าคุณกำลังเรียกใช้ฐานข้อมูลของคุณบนเซิร์ฟเวอร์ฐานข้อมูลหรือบน VM แยกต่างหาก VM จะโหลดและ ใช้งานผลิตภัณฑ์ของเรามีน้ำหนักเบามาก: CPU หนึ่งตัว, หน่วยความจำสี่กิ๊ก, Windows รุ่นใดก็ได้ - และเรารองรับการติดตั้งทั้งสามสิบสองและหกสิบสี่บิต แต่คุณต้องติดตั้งไคลเอนต์ของผู้จำหน่ายฐานข้อมูลของคุณ ดังนั้นหากคุณต้องการเชื่อมต่อกับ Oracle คุณต้องติดตั้ง SQL net client เพราะนั่นคือสิ่งที่ Oracle ต้องการเพื่อให้คุณสามารถพูดคุยกับฐานข้อมูลได้

Dez Blanchfield: ฟังดูค่อนข้างตรงไปตรงมา ฉันคิดว่าสิ่งหนึ่งจากสิ่งนี้มากกว่าสิ่งอื่นใดที่ฉันหวังว่าผู้คนจะถูกพาไปนอกเหนือจากการตระหนักว่าเครื่องมือนี้จะช่วยชีวิตพวกเขาคือพวกเขาควรจะไปดาวน์โหลดและเล่นกับมัน เนื่องจากคุณเสนอการทดลองใช้ฟรีสิบสี่วัน และสามารถทำงานบนแล็ปท็อปปัจจุบันโดยไม่ต้องติดตั้งอะไรเพิ่มเติมเพราะถ้าพวกเขาทำการจัดการฐานข้อมูลอยู่แล้วพวกเขากำลังทำงานกับฐานข้อมูลพวกเขามีเครื่องมือเหล่านั้นทั้งหมดอยู่ในนั้นและไม่ว่ามันจะทำงานบน VM ท้องถิ่นหรือ เดสก์ท็อปท้องถิ่นดูเหมือนว่าไม่เจ็บปวดที่จะติดตั้งและเล่นกับ ดังนั้นฉันขอแนะนำให้คนทำอย่างนั้น

Robin ฉันแน่ใจว่าคุณมีคำถามและ Eric คุณอาจได้รับบางอย่างจากผู้ชมดังนั้น Robin ฉันจะส่งต่อคุณแล้วกลับไปที่ Eric

Robin Bloor: ใช่แล้วโอเคฉันมีสิ่งที่จะพูดฉันหมายความว่าฉันมักจะพบว่าบริเวณนี้น่าหลงใหลเพราะมันเป็น - ฉันตัดฟันของมัน แต่ความจริงก็คืออาจจะตั้งแต่ประมาณปี 1998 ปี 1999 ฉันได้หลบเลี่ยงสิ่งที่ Oracle สามารถทำได้จริง และฉันรู้ Sybase และ Microsoft SQL Server ทั้งสองนั้นค่อนข้างง่ายเมื่อเทียบกับสิ่งที่ Oracle สามารถทำได้ คุณทำให้ฉันหัวเราะเมื่อคุณ - ฉันหมายถึงฉันปิดปากของฉันเมื่อคุณเริ่มพูดคุยเกี่ยวกับเศษ ออราเคิลทำสิ่งนี้มาก่อน Oracle มีการแนะนำในบางครั้งพวกเขามีความกังวลเกี่ยวกับแนวคิดเชิงวัตถุดังนั้นพวกเขาจึงแนะนำความสามารถในการสร้างรูปแบบของวัตถุและการจัดเก็บวัตถุใน Oracle และฉันได้พูดคุยกับหนึ่งในวิศวกรของพวกเขาเช่นคู่ของ หลายปีหลังจากที่พวกเขาแนะนำมันและฉันถามว่ามีคนใช้ไปกี่คนและเขาบอกว่าฉันคิดว่าลูกค้าสองคนได้ลองใช้และนั่นก็คือ และฉันคิดว่าสิ่งเดียวกันนี้จะเกิดขึ้นหากพวกเขาเริ่มลองทำสิ่งที่น่าสนใจของ NoSQL คุณรู้ฉันคิดว่ามันเป็นความผิดพลาดฉันหมายถึงฉันสนใจในสิ่งที่คุณคิด แน่นอน - พวกเขาดื่ม Kool-Aid พวกเขารู้สึกราวกับว่าพวกเขาจะต้องสามารถเรียกร้องคล้ายกับฐานข้อมูล NoSQL ขนาดใหญ่เช่น Cassandra แต่คุณรู้ไหมว่ามันสมเหตุสมผลสำหรับคุณหรือไม่?

Bert Scalzo: ไม่คุณโดนเล็บตรงหัว สำหรับฉันฉันจะทำอย่างไรถ้าฉันจะทำเชิงสัมพันธ์ฉันจะเลือกผู้จำหน่ายเชิงสัมพันธ์เช่น Oracle หรือ SQL Server หรือ DB2 หรือ Postgres แต่ถ้าฉันจะทำสิ่งที่ไม่ใช่เชิงสัมพันธ์ ในพื้นที่ข้อมูลขนาดใหญ่หรือพื้นที่ NoSQL ฉันจะเลือกเครื่องมือที่เหมาะสมสำหรับงานที่เหมาะสม และฉันไม่คิดว่ามันจะเป็นไปตามธรรมชาติกับผู้ขายฐานข้อมูลเชิงสัมพันธ์ของฉันก่อน และจากนั้นคุณเพิ่มรอยย่นอื่น ๆ ลงไปซึ่งก็คือสิ่งที่มีอยู่ในระบบคลาวด์ มีคนมากมายที่ต้องการกำจัดฐานข้อมูลออก จากนั้นคุณต้องดูที่ผู้ให้บริการคลาวด์ของคุณและพูดว่า“ โอเคคุณเป็นผู้ให้บริการอะไรคุณมีฐานข้อมูลใดที่เหมาะกับความต้องการของฉันและขายได้อย่างไรและตรงไหนคืออัตราหรือค่าใช้จ่ายสำหรับการใช้ฐานข้อมูลนั้น ในคลาวด์ต่อชั่วโมงหรือต่อวัน และต่อกิกะไบต์หรือเทราไบต์ "และสิ่งที่คุณจะพบอาจเป็นฐานข้อมูลที่ค่อนข้างใหม่กว่าอย่างเช่น Mongo หรือ Cassandra อัตราของมันอาจจะถูกกว่าดังนั้นถ้าคุณจะทำข้อมูลขนาดใหญ่แบบหลายเพตาไบต์คุณอาจ ต้อง - จากจุดยืนต้นทุน - ต้องพิจารณาฐานข้อมูล NoSQL ในคลาวด์เพราะอาจเป็นวิธีที่คุ้มค่าที่สุดในการทำ

Robin Bloor: ใช่แล้ว ฉันหมายถึงประเภทของฉัน - สิ่งที่เกี่ยวกับฐานข้อมูลเชิงสัมพันธ์ในประสบการณ์ของฉัน - ซึ่งนานพอที่จะมีแผลเป็นนั่นแน่นอน - มีสามัญสำนึกมากมายว่าถ้าคุณเริ่มใช้มันและ - คุณเข้าใจว่าความสัมพันธ์เชิงสัมพันธ์คืออะไรจริง ๆ ฉันหมายถึงฉันจำได้ว่าจะให้คำปรึกษากับลูกค้ารายหนึ่งครั้งหนึ่งและพวกเขาพาฉันเข้าไปในห้องและพวกเขาทำไดอะแกรมเอนทิตี้และสร้างรูปแบบปกติที่สามเป็นแบบจำลองของระบบหลักของ บริษัท มันมีโต๊ะสองร้อยสี่สิบโต๊ะและพวกเขาก็พูดว่า“ เอาละคุณคิดยังไงกับเรื่องนี้? เรากำลังจะสร้างฐานข้อมูลสำหรับสิ่งนี้” และพูดว่า“ คุณคิดยังไงกับเรื่องนี้” ฉันพูด“ ฉันไม่คิดว่ามันจะใช้งานได้” และคุณก็รู้ถูกเพราะคุณกำลังจะจบ ขึ้นเพื่อสร้างโครงสร้างเฉพาะภายในสิบเอ็ดทางเข้าร่วม และนั่นคือสิ่งที่ต้องเข้าใจเกี่ยวกับความสัมพันธ์ ดังนั้นฉันจึงสนใจที่จะเห็นว่าการออกแบบของคุณแย่แค่ไหน ฉันหมายความว่าฉันไม่มีปัญหาใด ๆ กับ DBArtisan - มันทำสิ่งที่สมเหตุสมผลมากและความจริงที่ว่าคุณสามารถแสดงผลบนหลายแพลตฟอร์มได้ฉันคิดว่ามันวิเศษมาก แต่คุณพบกับปัญหาการออกแบบที่เท่าไหร่ ที่ผู้คนสามารถแก้ไขตัวเองด้วยความปวดร้าวใจทุกชนิดถ้าพวกเขาลงไปที่รูปดาวแทนที่จะไปหาเกล็ดหิมะ -y คุณรู้ไหม?

Bert Scalzo: ฉันไม่อยากฟังดูเกรงใจหรือหยิ่ง แต่ฉันจะพูดบ่อยกว่านั้น เห็นได้ชัดว่าฐานข้อมูลส่วนใหญ่ที่ฉันเข้าไปเกี่ยวข้องมีอยู่พวกเขามีปัญหาหรือปัญหา ซึ่งเป็นสิ่งที่ดีเพราะเครื่องมือของเราเช่นเครื่องมือเพิ่มประสิทธิภาพฐานข้อมูลของเราสามารถช่วยพวกเขาในการแก้ปัญหาเหล่านั้นและ แต่สิ่งที่ตลกสำหรับฉันคือปัญหามากมายที่เป็นปัญหาง่าย ๆ ซ้ำแล้วซ้ำอีก ฉันเพิ่งทำงานกับลูกค้าเมื่อวันก่อนที่มีแบบสอบถามแบบร่วมสิบเอ็ดทางและฉันชอบ“ โอเคทำไมคุณไม่ใช้ประโยคด้วย?” และพวกเขาก็ชอบ“ เอาล่ะฉันไม่ได้ ไม่รู้ว่ามันคืออะไร” จากนั้นฉันก็พูดว่า“ และดูรายการย่อยที่คุณเลือกที่นี่ในความสัมพันธ์ของคุณและความสัมพันธ์ที่ไม่เกี่ยวข้องกันของคุณ” ฉันพูดว่า“ ในบางกรณีคุณมีประโยคที่ระดับลึกที่สุด ตารางอ้างอิงจากด้านนอก” ฉันพูดว่า“ นั่นคือย้ายมันออกไปในระดับที่เหมาะสมไม่ฝังลึกกว่าที่เป็นอยู่คุณจะสับสนกับเครื่องมือเพิ่มประสิทธิภาพ” และด้วยการปรับแต่งสองสามครั้งเรา ใช้เวลาบางอย่างที่ทำงานประมาณสองชั่วโมงและลดลงถึงสิบนาทีและเป็นเพียง - ในกรณีนั้นเราไม่ได้ทำอะไรนอกจากการปรับปรุง SQL ที่พวกเขาเขียน ฉันคิดว่าปัญหาคือมหาวิทยาลัยจำนวนมากและผู้คนจำนวนมากที่เรียนรู้การเขียนโปรแกรมในสภาพแวดล้อมที่ไม่ใช่นักวิชาการพวกเขาเรียนรู้ว่าเป็นกระบวนการเวลาที่บันทึกไว้หรือกระบวนการเรียงแถวและสัมพันธ์เป็นชุดธรรมชาติโดยธรรมชาติและดังนั้นคุณ ต้องคิดเป็นชุดเพื่อเขียน SQL ที่ดี

Robin Bloor: ใช่ฉันคิดว่าถูกต้องแล้ว และคุณต้องเข้าใจมันเป็นอย่างที่ผู้คนควรจะรู้เบื้องต้นเกี่ยวกับเรื่องแบบนี้ มันไม่สำคัญ คุณจะไม่สามารถทำสิ่งที่มีเหตุผลได้หากคุณไม่ทราบว่าแม้แต่ฐานข้อมูลที่ออกแบบมาอย่างดีแบบจำลองการเข้าร่วมจะใช้เวลานานการเรียงลำดับจะใช้เวลา พวกเขาทำเพราะโลกไม่เคยพบวิธีทำให้คนเหล่านั้นเดินไปอย่างรวดเร็ว พวกเขาได้พบวิธีการจัดระเบียบข้อมูลเพื่อให้พวกเขาไปได้เร็วกว่าอย่างอื่นและความกระตือรือร้นที่ฉันได้พูดสำหรับฐานข้อมูล NoSQL ก็คือพวกเขาหลีกเลี่ยงการเข้าร่วม พวกเขาเพิ่งเริ่มสร้างฐานข้อมูลด้วยการกระจายข้อมูลเดียวกันในพวกเขาเพราะถ้าคุณเข้าร่วมในฐานข้อมูล NoSQL ใด ๆ ที่พวกเขาดูดอย่างยิ่งยวด คุณไม่คิดเหรอ

Bert Scalzo: โอ้จริง ๆ และฉันต้องหัวเราะเพราะฉันเริ่มย้อนกลับไปก่อนฐานข้อมูลเชิงสัมพันธ์และกลับมาเมื่อ Ingres คือ RTI สถาบันเทคโนโลยีเชิงสัมพันธ์และเราไม่มี SQL เรามีภาษาสัมพันธ์ก่อน SQL ฉันคิดว่าในอิงกเสสตอนนั้นมันถูกเรียกว่าเควล ดังนั้นคุณได้รับจากกระบวนทัศน์ฐานข้อมูลเก่า ๆ เหล่านี้เช่นเครือข่ายและแบบกราฟิกที่สูงขึ้นหรือลำดับชั้นและคุณผ่านกระบวนทัศน์เชิงสัมพันธ์หลังจากสองสามทศวรรษและตอนนี้สำหรับฉันแล้วมันรู้สึกเหมือนว่าเรากำลังจะกลับไปเป็นลำดับขั้นเกือบ มันเกือบจะเหมือนว่าเราคืนกลับมาแล้ว

Robin Bloor: ใช่แล้ว ดีกว่าส่งคุณเข้าสู่ Eric ฉันใช้เวลามากเกินไป แต่เราได้รับคำถามจากผู้ชมไหม?

Eric Kavanagh: เราทำได้เรามีไม่กี่อย่าง เราจะไปอีกสักครู่ที่นี่ แต่ฉันจะโยนคู่คุณ เรามีคำถามสองสามข้อเกี่ยวกับดัชนีที่มองไม่เห็น คำถามหนึ่งก็คือ“ มีคนต้องการใช้เครื่องมือของคุณเพื่อที่จะเห็นสิ่งเหล่านั้นหรือไม่” คำถามอื่นคือ“ ถ้างั้นคุณตาบอดไหม?”

Bert Scalzo: เป็นเรื่องที่ดี

Eric Kavanagh: คำถามที่อยากรู้อยากเห็นเช่นกันดังนั้นเพียงแค่ FYI

Bert Scalzo: ไม่คุณไม่จำเป็นต้องมีเครื่องมือของเรา นั่นเป็นคุณสมบัติของออราเคิลซึ่งเป็นดัชนีที่ตรงกันข้าม โดยทั่วไปในพจนานุกรมข้อมูล Oracle เก็บข้อมูลเมตาเพียงส่วนเดียวที่ระบุว่า“ เครื่องมือเพิ่มประสิทธิภาพไม่สนใจดัชนีนี้ มันอยู่ที่นี่ แต่ถ้าคุณไม่ได้รับคำแนะนำทางร่างกายผ่านคำแนะนำใน, คำแนะนำการเพิ่มประสิทธิภาพในคำสั่ง SQL อย่าใช้สิ่งนี้” และดังนั้นไม่คุณไม่จำเป็นต้องมีเครื่องมือของเราและทุกประการ เป็นดัชนีเก่าธรรมดาคุณสามารถดูได้ในเครื่องมือใด ๆ มันเป็นเพียงเครื่องมือเพิ่มประสิทธิภาพที่จะพูดว่า "เราจะเพิกเฉยต่อมันในการประมวลผลการค้นหาปกติ" คุณต้องกำกับมันหากคุณต้องการใช้มัน มันมีประโยชน์จริง ๆ สำหรับสถานการณ์ที่ฉันอธิบายซึ่งถ้าคุณต้องการสร้างดัชนีในการผลิต แต่ไม่เสี่ยงที่จะทำลายรายงานหรือสิ่งที่กำลังดำเนินการอยู่ แต่คุณต้องการทดสอบพวกเขาคุณสามารถทำได้ นั่นคือสิ่งที่มันมีประโยชน์มากที่สุดสำหรับ

Eric Kavanagh: นั่นเป็นสิ่งที่ดีและจากนั้นก็มีอีกคำถามที่ดีที่นี่ “ แล้วฐานข้อมูลในหน่วยความจำใหม่เหล่านี้ล่ะ? เทคโนโลยีฐานข้อมูลในหน่วยความจำจะเปลี่ยนเกมเกี่ยวกับการจัดทำดัชนีได้อย่างไร”

Bert Scalzo: บอยเรา - ตอนนี้มันดีฉันดีใจที่มีคนถามคำถามนี้เราจะต้องไปอีกครึ่งชั่วโมง ไม่หน่วยความจำในนั้นขึ้นอยู่กับผู้จำหน่ายฐานข้อมูล ปกติแล้วตอนนี้ฉันเป็นคนพูดอะไรไม่ได้นอกจากชื่นชมสิ่งที่ Oracle ทำเพราะมันน่าทึ่งเทคโนโลยีที่พวกเขาสร้างขึ้น แต่เมื่อคุณฉีกกลับไปที่ปกและคุณดูว่าหน่วยความจำใน Oracle คืออะไรใน Oracle ฐานข้อมูลสิ่งที่เป็นจริงก็คือมันยังคงเก็บแถวเก็บไว้ในดิสก์และมันจะได้รับการโหลดเก็บคอลัมน์ในหน่วยความจำและหากมีหน่วยความจำไม่เพียงพอที่จะเก็บทั้งตารางก็จะกลับไปเป็นส่วน; มันจะไม่พอดีกับหน่วยความจำการทำที่เก็บแถวและเพื่อให้คุณสามารถเลือกกับตารางและครึ่งตารางคุณจะใช้การจัดทำดัชนีการกดปุ่มแถวแบบดั้งเดิมที่ตารางและอีกครึ่งหนึ่งของ ตัวเลือกที่จะออกไปจริง ๆ และเพิ่งคว้าทุกอย่างจากการค้นหาในหน่วยความจำและดังนั้นมันจึงแตกต่างกันไปตามวิธีที่ SQL Server ยกตัวอย่างนำมาใช้กับเทคโนโลยี Hekaton ของคุณคุณรู้และ SQL 2014 และได้รับการปรับปรุง ใน SQL 2016 แต่ในบางแง่มุมพวกเขาเป็นรุ่นที่แท้จริงของหน่วยความจำและ แต่การใช้งานแต่ละครั้งมีข้อดีและข้อเสีย แต่คุณต้องมองภายใต้ความครอบคลุมและตระหนักถึง เพราะฉันมีลูกค้าที่พูดว่า“ โอ้หน่วยความจำในตารางนี้ - ฉันแค่จะวาดดัชนีทั้งหมด” และฉันชอบ“ ตารางมีขนาดใหญ่กว่าหน่วยความจำที่คุณมีบนเซิร์ฟเวอร์ ดังนั้นเมื่อถึงจุดหนึ่งบางคำถามก็ต้องไปที่ดิสก์”

Eric Kavanagh: นั่นเป็นคำอธิบายที่ดี นั่นคือสิ่งที่ดี พวกเราจะมีเว็บคาสต์อีกสองสามรายการกับพวกเขาในช่วงที่เหลือของปีนี้กลับมาทุกครั้งที่คุณได้ยินว่าเบิร์ตกำลังนำเสนออยู่เพราะเรารู้ว่าเขารู้จักสิ่งของของเขา มันสนุกที่จะพูดคุยกับผู้เชี่ยวชาญเสมอ เราเก็บถาวรเว็บคาสต์เหล่านี้ทั้งหมดเพื่อการดูในภายหลัง นี่คือข้อมูลการติดต่อของเบิร์ตอีกครั้งและเราจะพยายามขุดลิงก์นั้นสำหรับดาวน์โหลดและส่งออกทางอีเมล แต่คุณสามารถส่งอีเมลของคุณได้อย่างแท้จริง: เรามีเว็บคาสต์มากมายสำหรับสิ่งนี้ ปีและเรากำลังทำแคลอรี่อยู่ในขณะนี้ดังนั้นถ้ามีหัวข้อใดที่คุณอยากได้ยินเกี่ยวกับปีหน้าอย่าอาย: ดูแลคนเราจะคุยกับคุณในครั้งต่อไป ลาก่อน.

พันธมิตรเนื้อหา Techopedia

เจ้าหน้าที่ Techopedia อยู่ในเครือเดียวกันกับ Bloor Group และสามารถติดต่อได้โดยใช้ตัวเลือกทางด้านขวา สำหรับข้อมูลเกี่ยวกับวิธีการทำงานกับพันธมิตรในอุตสาหกรรมคลิกที่นี่
  • ข้อมูลส่วนตัว
  • เว็บไซต์
ดัชนีวิกลจริต: วิธีหลีกเลี่ยงความสับสนวุ่นวายของฐานข้อมูล