Mục lục:
Bởi nhân viên Techopedia, ngày 5 tháng 10 năm 2016
Takeaway: Người dẫn chương trình Eric Kavanagh thảo luận về lập chỉ mục cơ sở dữ liệu với Tiến sĩ Robin Bloor, Dez Blanchfield và IDERA của Bert Scalzo.
Bạn hiện chưa đăng nhập. Vui lòng đăng nhập hoặc đăng ký để xem video.
Đối tác nội dung của Techopedia
Nhân viên Techopedia được liên kết với Bloor Group và có thể liên hệ bằng cách sử dụng các tùy chọn bên phải. Để biết thông tin về cách chúng tôi làm việc với các đối tác trong ngành bấm vào đây.- Hồ sơ
- Trang mạng
Eric Kavanagh: Thưa quý vị và các bạn, xin chào, và chào mừng trở lại một lần nữa. Hôm nay là thứ Tư, lúc bốn giờ Đông, và những người biết chương trình, biết điều đó có nghĩa là gì, đã đến lúc cho một tập phim khác của Hot Technologies. Vâng, thực sự. Tên tôi là Eric Kavanagh, tôi sẽ là người điều hành của bạn cho phiên hôm nay: "Index Insanity: Làm thế nào để tránh sự hỗn loạn cơ sở dữ liệu." Hoặc như tôi đã đề cập đến nó trong vụ nổ email cuối cùng để đi ra ngoài, cơ sở dữ liệu của cuộc tranh luận. Có một slide về bạn thực sự. Và đủ về tôi.
Vì vậy, loạt Công nghệ nóng thực sự được thiết kế để xác định một không gian cụ thể, trái ngược với Phòng Tóm tắt, đây chỉ là cuộc họp ngắn của nhà phân tích trực tiếp, đối với Hot Tech, chúng tôi có hai nhà phân tích. Hôm nay, nó sẽ trở thành Bác sĩ Robin Bloor và nhà khoa học dữ liệu của chúng tôi Dez Blanchfield. Và chúng ta đang nói về một chủ đề mà tôi nghĩ thực sự khá tiêu biểu cho những gì đang diễn ra trên thị trường hiện nay.
Điểm mấu chốt là chúng ta đang ở trong một thế giới phức tạp ngày nay. Thực sự, nếu bạn nghĩ lại mười lăm năm, hoặc hai mươi năm, thì đó là một thế giới rất khác trước đó, đặc biệt là đối với công nghệ cơ sở dữ liệu. Cơ sở dữ liệu được sử dụng khá đơn giản. Chỉ có một số ít trong số họ; hầu hết trong số họ là quan hệ. Bây giờ, chúng ta có toàn bộ công nghệ cơ sở dữ liệu này. Nghĩa đen là các tùy chọn trên bàn cho bất cứ ai muốn xây dựng một ứng dụng hoặc làm một cái gì đó với dữ liệu. Mọi thứ đang thay đổi và điều đó ảnh hưởng đến những người cố gắng quản lý các hệ thống này. Hôm nay chúng ta sẽ nói chuyện với Bert Scalzo, một chuyên gia thực sự trong lĩnh vực này; ông là quản lý sản phẩm cao cấp cho IDERA, về những gì bạn có thể làm để xử lý tất cả dữ liệu đó. Với điều đó, tôi sẽ đưa nó cho bác sĩ Robin Bloor để mang nó đi. Robin, sàn là của bạn.
Robin Bloor: Được rồi, cảm ơn vì lời giới thiệu đó. Tôi nghĩ nó - bởi vì đó là một thứ hai tay, tôi nghĩ rằng tôi sẽ chỉ nói về tối ưu hóa cơ sở dữ liệu nói chung như là một giới thiệu về chương trình Hot Tech này. Tôi bắt đầu cuộc sống - về công nghệ và phân tích - Tôi bắt đầu cuộc sống làm điều này bởi vì tôi thường viết bài về khả năng của cơ sở dữ liệu trên nền tảng DEC VAX. Và vì lý do đó, những người chi tiêu cơ sở dữ liệu đã sử dụng để tóm tắt cho tôi. Và điều xảy ra với tôi là, tại sao bạn lại có cơ sở dữ liệu? Ý tôi là, vào thời đó, rất nhiều người đã sử dụng để tạo các tệp giá trị chính và sử dụng chúng để có một loại sai lầm tuần tự chỉ mục khi chúng ta gọi chúng, nhưng để tạo ra một loại khả năng cơ sở dữ liệu, và bạn biết, tại sao bạn lại có còn gì nữa không?
Và câu trả lời cho điều đó, tôi nghĩ Michael Stonebraker đã đưa ra câu trả lời tốt nhất cho điều đó, và ông nói, "Một cơ sở dữ liệu có thể biết nhiều hơn về dữ liệu ở đâu và tốc độ lấy nó như thế nào, hơn bất kỳ chương trình nào có thể biết." Và tôi nghĩ điều đó thật thú vị; đó là bản chất của trò chơi Nhưng vào năm 19 - khoảng năm 1989, tôi bắt đầu phân tích công nghệ và bạn biết đấy, vào thời điểm đó, cơ sở dữ liệu rất đơn giản và cơ sở dữ liệu quan hệ là siêu đơn giản. Họ có rất ít khả năng, ý tôi là, họ có thể lưu trữ dữ liệu, rõ ràng, và bạn có thể sao lưu và họ có, họ tuân thủ ACID, nhưng họ thực sự có trình tối ưu hóa rất yếu. Trên thực tế, thật khó để tranh luận rằng họ có khả năng tối ưu hóa cả.
Và sau đó, chúng ngày càng tốt hơn, nhưng, bạn biết đấy, khi cơ sở dữ liệu không hoạt động - vì những con chuột túi này dường như bằng cách này hay cách khác chỉ ra - có thể có rất nhiều lý do khiến nó chậm đi. Và điều đó đưa tôi đến điểm: Cơ sở dữ liệu có nhiều chức năng, nhưng chức năng quan trọng nhất là tối ưu hóa truy vấn. Nếu họ không làm điều đó, bạn sẽ không sử dụng chúng. Đó là về việc nhận thông tin nhanh chóng, đó là về việc có thể làm điều đó khi có nhiều người dùng đồng thời và đó là một vấn đề khó khăn. Và khi bạn thực sự nhìn vào, hãy gọi chúng là cơ sở dữ liệu trưởng thành, nếu bạn thích - nhưng chắc chắn là Oracle, ở mức độ thấp hơn một chút, Microsoft SQL Server, chắc chắn là Teradata và DB2 - các trình tối ưu hóa của các cơ sở dữ liệu đó đã có, đã có hàng thập kỷ trong xây dựng. Bạn biết đấy, họ đã không - ai đó đã không ngồi xuống - sáu chàng trai trong một dự án hai người, năm, và chỉ cần gõ một cái với nhau. Nó không hoạt động như thế. Khả năng tối ưu hóa đã dần dần phát triển, và nó cần rất nhiều sự phát triển. Dù sao, hãy nói về nền tảng cho cơ sở dữ liệu. Chà, bây giờ có rất nhiều điều đã nói về cơ sở dữ liệu NoQuery và thậm chí còn có rất nhiều sự nhiệt tình đối với cơ sở dữ liệu đồ thị. Và việc sử dụng SQL trên Hadoop và những thứ tương tự. Nhưng, sự thật của vấn đề là nếu bạn muốn có cơ sở dữ liệu ngay bây giờ, nếu bạn muốn có một chức năng đầy đủ, có khả năng OLTP và lưu lượng truy vấn lớn, thì đó là cơ sở dữ liệu quan hệ hoặc không có gì.
Trong số các cơ sở dữ liệu quan hệ, Oracle chiếm ưu thế về mức độ phổ biến. Microsoft SQL Server, tôi nghĩ, là thứ hai. Cả hai đều có khả năng được sử dụng cho OLTP và khối lượng công việc truy vấn, nhưng thực sự bạn không thể tránh khỏi việc trộn các khối lượng công việc đó. Bạn cần các sự cố khác nhau cho khối lượng công việc OLTP và khối lượng công việc truy vấn. Có những lựa chọn thay thế cho SQL và đồ thị. Hầu hết các công ty đều chuẩn hóa một cơ sở dữ liệu cụ thể, đó là lý do - ý tôi là sau nhiều thập kỷ đấu tranh với tất cả những người chơi khác, Oracle đã trở thành cơ sở thống trị nhất. Đơn giản là vì cuối cùng họ đã có thể bán giấy phép của công ty và vì vậy các công ty sẽ chỉ sử dụng các sản phẩm thay thế trong các sản phẩm đặc biệt mà Oracle đơn giản sẽ không làm chúng. Và cơ sở dữ liệu là chiến lược trong đó họ cũng phát triển. Và bạn biết rằng tôi đã nghiên cứu một chút cho bài thuyết trình này, và nó là - tôi sẽ đến với nó trong một thời gian, nhưng thật thú vị khi họ phát triển, về mặt nhìn từ vị trí của DBA. Đây là những gì tôi gọi là xu hướng vô hình. Đó là luật của Moore lập phương. Nó đại khái như thế này: Cơ sở dữ liệu lớn nhất là và cơ sở dữ liệu mới, không có cơ sở dữ liệu cũ nào có nhiều dữ liệu hơn để nhập. Đó thường là một cơ sở dữ liệu đang được áp dụng cho một vấn đề mới. Và họ thực sự phát triển về mặt khối lượng dữ liệu. Khoảng tại khối lập phương của Moore pháp luật. Vì vậy, luật của Moore là một nhân tố mười lần cứ sau sáu năm. VLDB có xu hướng tăng trưởng một nghìn mỗi sáu năm. Vào năm 1991, 1992, các cơ sở dữ liệu lớn được đo bằng megabyte. Trong '97 và '98, gigabyte. 2003, '4, terabyte. 2009, '10, bạn bắt đầu thấy cơ sở dữ liệu petabyte. Tôi nghĩ hiện tại có thể có một hoặc hai cơ sở dữ liệu exabyte, nhưng cái lớn nhất tôi từng nghe là 200 petabyte đúng giờ, và bạn biết đấy, không nhận được dữ liệu vào cơ sở dữ liệu petabyte. Nhưng, hầu hết đó rõ ràng sẽ là các công ty web 2.0 mới, có thể, bạn đã đưa Facebook đi theo hướng đó.
Nhưng dù sao đi nữa, nếu bạn thực sự nhìn vào điều đó, hy vọng một cơ sở dữ liệu sẽ trải qua kiểu leo thang đó về khối lượng, nó sẽ hỏi rất nhiều. Và đáng chú ý, chắc chắn đến mức petabyte, họ dường như đã làm rất tốt. Ý tôi là, tôi đang nói về các sản phẩm cũ hơn là bất cứ thứ gì mới. Họ dường như đã làm rất tốt. Nếu chúng ta nhìn vào hiệu suất cơ sở dữ liệu, các nút cổ chai, điều này sẽ đưa tôi trở lại thời gian tôi thực sự sử dụng để quan tâm đến chúng và phải lo lắng về chúng. Bạn biết điều này về cơ bản là sự cố của phần cứng. Có những tắc nghẽn CPU, có thể, có những tắc nghẽn bộ nhớ, có thể, có những tắc nghẽn đĩa, có thể. Đó có thể là mạng khiến bạn đau buồn và bạn cũng có thể gặp sự cố với khóa, tùy thuộc vào việc bạn đang làm, nhưng thông thường đó là do chương trình không biết gọi ai là khóa. Vì vậy, nếu bạn định điều chỉnh cơ sở dữ liệu, bạn thực sự đang cố điều chỉnh cơ sở dữ liệu để nó nhảy giữa năm nút thắt có thể xảy ra cũng như có thể làm được. Và đó không phải là vấn đề dễ dàng, bởi vì dung lượng bộ nhớ mà bạn có thể định cấu hình trên bất kỳ máy chủ cụ thể nào đều tăng đáng kể. Sau đó, CPU đã trở thành đa lõi, đĩa, giờ chúng ta có thể làm được, tôi nghĩ, ngay cả trên các máy chủ hàng hóa, tôi nghĩ bạn có thể làm hàng trăm và hàng trăm terabyte, một phần tư petabyte, thậm chí trên máy chủ hàng hóa. Vì vậy, trong tất cả những điều này, bạn có thể chơi với, tất nhiên mạng có thể chạy ở các tốc độ khác nhau, nhưng chủ yếu là khi bạn đang xử lý cơ sở dữ liệu, bạn thực sự muốn có cáp quang giữa các máy chủ và không có gì khác chạy trên đó, đặc biệt là theo cách đó
Yếu tố hiệu suất cơ sở dữ liệu. Ý tôi là, tôi sẽ bỏ qua tất cả những gì sẽ xảy ra, bởi vì tôi biết Dez sẽ nói về nó, nhưng thiết kế cơ sở dữ liệu xấu có nghĩa là một cơ sở dữ liệu hoạt động kém. Thiết kế lập trình xấu có thể có nghĩa là ném SQL rất ngu ngốc vào cơ sở dữ liệu, việc này sẽ mất nhiều thời gian hơn. Trộn lẫn đồng thời và khối lượng công việc, quá nhiều đồng thời sẽ gây ra vấn đề tắc nghẽn. Việc trộn khối lượng công việc, khi bạn có các truy vấn lớn với các truy vấn rất nhỏ, ngắn, sắc nét, gây ra sự cố. Có một vấn đề cân bằng tải. Hầu hết các cơ sở dữ liệu đều quan tâm đến điều đó, nhưng nếu bạn chưa có một sản phẩm tinh vi, thì bạn biết đấy, chỉ cần thêm một vài máy chủ, sẽ không phải là tất cả những gì bạn làm nếu bạn thực sự muốn tăng kích thước của một cụm. Bạn thực sự phải cân bằng tải trước khi bạn có được hiệu suất tối ưu. Bạn cần làm kế hoạch năng lực. Chắc chắn rồi. Đặc biệt là bây giờ trong những ngày này khi khối lượng dữ liệu tăng mạnh hơn so với trước đây cho cơ sở dữ liệu. Và có nhiều vấn đề về lớp dữ liệu đối với cách bạn nhập dữ liệu, cách bạn di chuyển dữ liệu. Không nhận được dữ liệu vào cơ sở dữ liệu đúng hạn có thể là vấn đề về hiệu suất sau này vì chúng tôi đã chuyển từ cơ sở dữ liệu hoạt động trong Windows, sang hai mươi bốn bởi ba trăm bảy mươi lăm hoạt động và không có cửa sổ nơi bạn có thể làm chậm cơ sở dữ liệu xuống hoặc không chắc là sẽ có ngày hôm nay.
Vấn đề Oracle DBA. Đây là những gì tôi đã suy nghĩ về. Tôi đã tham gia DBA của Oracle với Oracle 7 và tôi nhớ cách điều chỉnh nó. Và nếu bạn thực sự nhìn vào Oracle bây giờ, đó là cách, cách - đó là cách, khả năng nhiều hơn. Nó có lập chỉ mục bitmap và những thứ tương tự, nhưng tôi thực sự đã dành thời gian để xem và xem có bao nhiêu tham số điều chỉnh thực sự có trong cơ sở dữ liệu của Oracle vào lúc này. Và có hơn ba trăm năm mươi thông số điều chỉnh và có thêm một trăm thông số ẩn, mà các DBA chuyên gia có thể biết, nhưng các DBA Oracle bình thường không biết về. Và điều đó có nghĩa là điều chỉnh loại cơ sở dữ liệu này là một điều khó khăn. Đó không phải là một điều đơn giản cả. Bạn đã có cảm giác về nó, bạn đã phải thực hiện nó trong một thời gian dài và bạn đã biết chính xác vấn đề mà bạn nghĩ bạn đang giải quyết là gì, bởi vì việc điều chỉnh bắt đầu khi hiệu suất trở nên kém, nhưng nó có thể không phải là hiệu suất của tất cả mọi thứ. Đó có thể là hiệu suất của các truy vấn cụ thể có vấn đề và bạn có thể khắc phục điều đó bằng cách ghim dữ liệu và bộ nhớ nhất định hoặc bạn có thể cần sửa nó bằng cách lập chỉ mục hoặc bạn có thể cần bắt đầu thực hiện phân vùng theo cách khác. Có rất nhiều điều bạn có thể làm, là vấn đề. Do đó, do đó, họ sẽ không làm điều đó trong đầu - DBA cần các công cụ. Bây giờ tôi sẽ chuyển cho Dez, người sẽ nói với bạn về việc lập chỉ mục, tôi nghĩ vậy.
Eric Kavanagh: Được rồi Dez, mang nó đi.
Dez Blanchfield: Cảm ơn bạn, Robin và tôi thích trang bìa. Tôi nghĩ rằng bạn đã ném chiếc găng sắt xuống đó để tôi đến thậm chí đến gần với thứ gì đó thú vị. Nhưng tôi đã sử dụng một hình ảnh về thiên hà nhỏ của chúng tôi, như quan điểm của tôi về những thách thức ngày nay đối với các quản trị viên cơ sở dữ liệu đã biến thành, bởi vì đây là hình ảnh tinh thần mà tôi có xu hướng gợi lên khi tôi vào một môi trường và tôi không còn trong thế giới quản trị cơ sở dữ liệu hoặc thiết kế cơ sở dữ liệu ở cấp độ đó nữa. Nhưng, giống như bạn, Robin và tôi đã có nhiều năm tham gia vào thế giới cơ sở dữ liệu, với tư cách là quản trị viên hoặc nhà phát triển, hoặc cuối cùng là kiến trúc sư, và sau đó nhận ra rằng tôi có thể làm những điều tốt hơn để kiếm được lớp vỏ. Nhưng nó có xu hướng cảm thấy như bạn đang nhìn chằm chằm vào thiên hà dữ liệu này và ngày nay, khi chúng tôi đi từ, như bạn đã phác thảo, chúng tôi đã chuyển từ megabyte sang petabyte và quy mô exo trong một khoảng thời gian rất ngắn, trong sơ đồ lớn của sự vật. Nhưng cụm từ mà tôi có trong đầu là, các chỉ mục cơ sở dữ liệu bây giờ là một nghệ thuật đen và chúng không thực sự là thứ mà những người bình thường nên tìm hiểu, cho các ứng dụng kinh doanh cấp doanh nghiệp và loại hình công thức cho bạn chỉ nói về. Nhưng, tôi muốn đi qua một bản tóm tắt nhanh chóng về loại lịch sử mà tôi đã có với thế giới cơ sở dữ liệu và đưa đến bối cảnh nơi chúng ta sẽ đưa ra kết luận, và sau đó chạy qua một số tài liệu với bạn bè của chúng tôi tại IDERA, bởi vì tôi nghĩ rằng có rất nhiều suy nghĩ khác nhau về cách điều chỉnh hiệu suất cơ sở dữ liệu và một trong số họ đang ném tin vào điều đó. Đối với nhiều cửa hàng mà tôi đi qua, họ luôn luôn đi đến điểm thực hiện điều chỉnh hiệu suất ở lớp cơ sở dữ liệu và đặc biệt là lớp chỉ mục cho đến khi họ vượt qua được suy nghĩ khó khăn họ có thể ném bộ điều chỉnh vào nó .
Trong suy nghĩ của tôi, rất nhiều người chỉ sử dụng một cách tiếp cận sắt rất lớn và tôi đã có một bức ảnh về The Flash ở đây bởi vì nếu bạn đã từng xem bất kỳ bộ phim cũ nào hoặc chắc chắn là chương trình truyền hình mới nhất với The Flash, như trong Flash Gordon là nhân vật cũ, và bây giờ anh ta được gọi là The Flash, anh ấy có xu hướng đi rất, rất nhanh và luôn luôn cạn kiệt năng lượng. Và đây là những gì xảy ra khi bạn ném sắt lớn vào hiệu suất cơ sở dữ liệu. Lúc nào cũng vậy, theo kinh nghiệm của tôi, bạn có thể đặt hiệu năng cao, làm việc chăm chỉ trong trò chơi, bạn có thể tối ưu hóa hệ điều hành của mình và điều chỉnh chúng đến một điểm nhất định. Bạn có thể đảm bảo rằng bạn đã có CPU đa lõi, đa luồng nhanh để làm cho ứng dụng chạy nhanh hơn, bạn có thể ném rất nhiều RAM vào nó, bạn có thể có backplanes thông lượng cao, bạn có thể chuyển từ ổ cứng sang bộ nhớ đệm sang trạng thái rắn và mảng lưu trữ hiệu năng cao. Và ngay cả bây giờ, mọi người ném vào những thứ như flash và NVMe tại các công cụ cơ sở dữ liệu của họ, nghĩ rằng họ sẽ nhận được lần đăng nhập này hai lần đạt được hiệu suất. Và họ luôn nhận được một số lợi ích. Nhưng, tất cả trở lại với các vấn đề điều chỉnh hiệu suất cơ bản tương tự. Rất nhiều kết nối mạng có độ trễ thấp, do đó các cụm hoạt động nhanh. Và về cơ sở hạ tầng cơ sở dữ liệu phân cụm, vì vậy bạn đã có nhiều hơn một máy làm tất cả công việc. Nhưng bạn có xu hướng quay trở lại cùng một vấn đề hiệu suất cơ bản, và đó là đọc dữ liệu. Viết dữ liệu, phần lớn, là một thách thức khá tuyến tính và trừ khi nó được thực hiện đúng cách.
Và sau đó chúng ta có một thách thức trong thế giới ngày nay: Không phải tất cả các cơ sở dữ liệu đều được tạo ra như nhau. Có cơ sở dữ liệu và cơ sở dữ liệu cơ sở dữ liệu báo giá. Và khi chúng ta nghĩ về các công cụ cơ sở dữ liệu, mọi người thường nghĩ về các nghi phạm truyền thống, thông thường khi chúng ở trong thế giới SQL. Bạn biết đấy, chúng ta đã có Oracle và Microsoft SQL Server và có một cặp đôi xung quanh nó trong thế giới nguồn mở với MySQL, hiện thuộc sở hữu của Oracle, nhưng nó vẫn là nguồn mở. Và sau đó, chúng ta đã có những nghi phạm không bình thường, các công cụ NoQuery, vẫn còn một vấn đề xoay quanh việc lập chỉ mục và quản lý hiệu suất, và tôi sẽ không đi sâu vào chi tiết, nhưng số lượng này ngày càng tăng mọi thứ xuất hiện mỗi ngày và chúng trông giống như các công cụ cơ sở dữ liệu theo quan điểm của các nhà phát triển và từ quan điểm hiệu suất, nhưng chúng là những con thú rất, rất khác nhau và chúng có một hốc nhỏ riêng trên thế giới để khắc chế hiệu suất trong bộ nhớ hoặc quy mô tuyến tính trên đĩa. Nhưng đây là những gì thế giới trông giống như trong thế giới cơ sở dữ liệu. Đây là năm 2016, đây là phiên bản thứ ba của bản đồ, bởi một loạt những người tạo ra bản đồ cảnh quan đang diễn ra này trông như thế nào, và đây là nơi - thậm chí không phải là một kiến trúc sư cơ sở dữ liệu siêu phàm hoặc quản trị viên cơ sở dữ liệu có thể hiểu của nó Nghĩa đen là hàng trăm, và hàng trăm, và hàng trăm kiểu dáng, mô hình, nhà sản xuất cơ sở dữ liệu khác nhau, luôn tuân thủ SQL. Và điều thú vị là, tất cả đều quay trở lại cùng một thử thách. Hiệu suất và điều chỉnh hiệu suất xung quanh công cụ cơ sở dữ liệu và đặc biệt là cách dữ liệu được lập chỉ mục.
Vì vậy, chúng ta hãy nhanh chóng bao gồm việc lập chỉ mục cơ sở dữ liệu, bởi vì đó là một chủ đề thú vị và bạn phải tìm hiểu chi tiết hơn với bản demo, tôi tin. Nhưng, tôi nghĩ rằng thực tế công nghiệp tiêu chuẩn được chấp nhận khá tốt và điều chỉnh hiệu suất chỉ mục cơ sở dữ liệu là nơi thế giới bắt đầu và kết thúc miễn là đảm bảo dữ liệu của bạn có thể truy cập được ở định dạng nhanh và nhanh. Nhưng lập chỉ mục cơ sở dữ liệu là gì? Nếu chúng ta nghĩ về việc lập chỉ mục theo hình thức mà chúng ta đã quen như người thường, hãy nghĩ về một trang chỉ mục trong một cuốn sách. Nếu bạn muốn tìm thứ gì đó trong một cuốn sách - đặc biệt là cuốn bách khoa toàn thư, hoặc thứ gì đó giống như một tài liệu tham khảo ở dạng nào đó - nếu bạn đang tìm kiếm một cái gì đó như trang này, nơi tôi đang tìm kiếm những thứ như chủ đề về con đập trong một cuốn bách khoa toàn thư. Tôi muốn tìm mọi tài liệu tham khảo về đập, lưu vực nước và diện tích tích tụ lớn, nhân tạo nói chung. Tôi sẽ đi về phía sau, tôi sẽ tìm thấy nó trong một danh sách được sắp xếp theo thứ tự chữ cái, từ A đến Z, từ trái sang phải và tôi sẽ tìm thấy D. Tôi sẽ tìm thấy từ từ đập đập chết và tôi có thể thấy từ đó trang 16, 38, 41 có một tài liệu tham khảo về chúng, và sau đó tôi có thể đi đến những trang đó, tôi có thể quét mắt xuống và tôi sẽ tìm thấy tài liệu tham khảo về từ đập Dam. Về cơ bản đó là khái niệm tương tự trong cơ sở dữ liệu, nhưng bây giờ nó là một khoa học tên lửa theo nhiều cách. Rất nhiều, đến nỗi mọi quản trị viên cơ sở dữ liệu mà tôi từng biết đều hiểu rõ, coi các chỉ mục là công cụ quan trọng nhất để điều chỉnh hiệu suất trong bất kỳ thế giới cơ sở dữ liệu nào, bất kể trải nghiệm của họ có thể như thế nào, hoặc Bất kể trường hợp có thể.
Nói chung khi chúng ta nói về lập chỉ mục cơ sở dữ liệu, có một số cách tiếp cận phổ biến. Và các chỉ mục cơ sở dữ liệu càng phức tạp, cách tiếp cận dữ liệu lập chỉ mục càng phức tạp. Nhưng về cơ bản khi bạn nghĩ về việc lập chỉ mục dữ liệu - hãy tưởng tượng rằng chúng ta có một tệp có danh sách các tên; chúng có thể không được sắp xếp theo thứ tự bảng chữ cái. Hãy tưởng tượng có hai mươi người trong số họ. Nếu chúng ta sắp xếp - nếu chúng ta sẽ tìm kiếm dữ liệu trong danh sách đó, từ trên xuống dưới và giả sử đó là danh sách các tên. Nếu tôi chọn một tên ngẫu nhiên và tôi bắt đầu cuộn xuống danh sách đó, từ trên xuống dưới, ở định dạng tuyến tính và đó là danh sách không có thứ tự, có hai tiêu chí tôi nghĩ về thời gian tìm kiếm trung bình và thời gian tìm kiếm tối đa của tôi - và Tôi đã có một lỗi đánh máy ở dòng thứ hai, nên là thời gian tìm kiếm tối đa, nên xin lỗi - nhưng thời gian tìm kiếm trung bình của tôi về cơ bản là N cộng với một, chia cho hai và trung bình, tôi phải mất năm mươi phần trăm thời gian để quét từ đầu danh sách, đến cuối danh sách để tìm bất kỳ điều ngẫu nhiên nào trong danh sách đó. Và dòng thứ hai ở đó, theo tuyến tính, nên là thời gian tìm kiếm tối đa của Google. Nhưng thời gian tìm kiếm tối đa về cơ bản là số lượng vật phẩm, và đó là nếu tôi có một danh sách gồm hai mươi thứ, đó là thời gian nhiều nhất tôi có thể mất để tìm kiếm một cái gì đó trong cơ sở dữ liệu đó là đi từ trên xuống dưới, giả sử 20 mục trong ví dụ đơn giản này. Và đó là một quá trình rất chậm và thực sự không có cách nào để thực hiện điều đó. Và sau đó, có nhiều cách khác để lấy dữ liệu đó và tạo một chỉ mục, đó thực sự là một danh sách ngắn các con trỏ tới nơi dữ liệu thực tế, chẳng hạn như nhị phân, cây B, bitmap, băm, phân cụm và không phân cụm, và sau đó có các loại dữ liệu khác nhau như không gian, bộ lọc, XML và toàn văn.
Nhị phân là một thứ được sử dụng rất phổ biến cho những thứ mà dữ liệu tự cho nó mượn. Cây B có lẽ là phổ biến nhất theo nghĩa chung, theo lịch sử, ở chỗ, đó là cách phổ biến để cấu trúc một chỉ mục cho bất kỳ dạng dữ liệu nào và cho phép ghi nhật ký, lựa chọn và chèn và xóa tương đối dễ dàng khi bạn di chuyển con trỏ xung quanh tham chiếu đến các con trỏ, các điểm. Có các loại khác, như bitmap, trong đó các loại dữ liệu quan tâm như nếu chúng ta có một phạm vi liên quan của một số dạng. Băm hoạt động rất tốt cho các đối tượng lớn, đặc biệt là blog và hình ảnh. Và bạn có thể thấy rằng có một số loại phương pháp khoa học, phương pháp toán học khác nhau, để lập chỉ mục dữ liệu. Đối với người phàm tục, họ là một thử thách thú vị để nói về cấp độ này. Khi bạn nói về nó ở mức hiệu suất cho một quản trị viên cơ sở dữ liệu, họ thực sự trở thành một nhà khoa học tên lửa và mọi người làm bằng cấp cho họ, và tôi biết rằng Bác sĩ Robin Bloor chắc chắn đã làm điều đó, và viết sách về nó cho IBM và các thương hiệu lớn khác trong vài thập kỷ qua. Và vì vậy, - quan điểm của tôi, là chúng ta đã thực sự đi qua một thời gian, mà bạn biết rằng một lần tôi sẽ có thể ngồi trước một hệ thống và tôi sẽ có thể kéo nó ra và cho bạn thấy chính xác các vấn đề về hiệu năng nằm ở dòng lệnh hoặc tại công cụ khởi động giao diện người dùng đồ họa và bắt đầu đi sâu vào dữ liệu và cho bạn biết vấn đề ở đâu, và xây dựng các chỉ mục, hoặc chỉ mục phụ, hoặc chỉ mục chính và chỉ mục phụ dữ liệu và bắt đầu sử dụng nó để tìm thấy mọi thứ. Nhưng khi bạn nghĩ về phong cảnh đó tôi đã chỉ cho bạn, nơi chúng ta có hàng trăm và hàng trăm thương hiệu, nhà sản xuất và mô hình, nhà sản xuất và loại cơ sở dữ liệu, chúng ta đã thực sự vượt qua thời điểm đó, nơi con người có thể tạo ra ý nghĩa của các loại công cụ cơ sở dữ liệu chúng ta đã có. Đặc biệt, ngay cả khi chúng ta mới trở lại như Oracle, các thương hiệu chiếm ưu thế ngày nay trong các nền tảng cơ sở dữ liệu quan hệ.
Số lượng cơ sở dữ liệu họ phải xử lý từ một nền tảng độc quyền như ERP hoặc HR hoặc hệ thống tài chính, hoặc liệu chúng có phải là nền tảng nướng tại nhà vì nhiều lý do, số lượng cơ sở dữ liệu và bảng cơ sở dữ liệu mà chúng tôi kết thúc đối phó với chỉ là thiên văn học và bạn không thể làm điều đó bằng tay. Và chúng ta đã có một sự phức tạp thêm bây giờ, nơi mà ngày xưa, một máy chủ cơ sở dữ liệu có thể chỉ ngồi dưới bàn của bạn. Bạn biết đấy, khi còn nhỏ sau giờ học, tôi đã từng đi và làm việc trên phần mềm cơ sở dữ liệu trên các hệ thống dựa trên Apple IIes và sau đó là DOS PC, như dBase II, dBase III, đã trải qua một kỷ nguyên với máy tính lớn và giữa phạm vi và thậm chí VAX và PDP và tệp nhật ký trên đó. Và giống như Saber, và cuối cùng khi một số cơ sở dữ liệu SQL xuất hiện. Nhưng ngày nay khi chúng ta nghĩ về các công cụ cơ sở dữ liệu, chúng trông giống như góc dưới bên trái. Một máy chủ cơ sở dữ liệu không chỉ là một máy ngồi trên sàn dưới bàn nữa; đó là hàng trăm máy chạy các bản sao của các công cụ cơ sở dữ liệu và các cụm, và chúng có quy mô lên tới hàng trăm và hàng trăm terabyte dữ liệu, nếu không phải là petabyte dữ liệu, là hàng nghìn terabyte. Và thậm chí đến mức cực đoan, như Bác sĩ Robin Bloor đã đề cập, rằng một số trường hợp sử dụng cụ thể - đặc biệt là các hãng hàng không, cơ quan chính phủ - có thể có được exabyte. Chúng vẫn còn khá nhỏ, nhưng hàng trăm terabyte và thậm chí hàng chục petabyte không còn là điều bất thường nữa, đặc biệt là từ sự bùng nổ dotcom cho đến nay, đó là những gì chúng ta gọi là các công ty web 2.0, như Facebook, Google, Yahoo và kể từ đó trở đi.
Chúng tôi cũng có sự phức tạp khi mọi thứ đang chuyển sang dịch vụ bên ngoài. Chúng tôi đã có nền tảng cơ sở hạ tầng và phần mềm như một cách tiếp cận dịch vụ cung cấp cơ sở hạ tầng. Và đặc biệt là dịch vụ nền tảng nơi chúng tôi không thể chỉ mua cho Oracle và nền tảng đám mây, cơ sở dữ liệu và máy chủ của họ. Và vì vậy, điều này cho phép chúng tôi phát triển ứng dụng rất nhanh và chỉ cần cắm lại cơ sở dữ liệu vào máy chủ. Chúng tôi không phải suy nghĩ về những gì dưới mui xe. Nhược điểm là chúng ta thường không nghĩ về cách chúng ta thiết kế và triển khai cơ sở dữ liệu cho đến khi nó bắt đầu bị tổn thương và hiệu suất trở thành một vấn đề và sau đó chúng ta phải tìm kiếm công cụ phù hợp để chẩn đoán tại sao cơ sở dữ liệu của chúng ta bị tổn thương và vấn đề hiệu suất là ở đâu. Và luôn luôn đưa nó trở lại vấn đề chung về cách chúng tôi lập chỉ mục dữ liệu đó và các loại chỉ mục chúng tôi đã sử dụng cho dữ liệu đó và sau đó đưa chúng tôi trở lại yêu cầu hiệu suất siêu phàm. Và ai đó có quyền truy cập vào đúng hệ thống và công cụ phù hợp để thực hiện điều chỉnh các công cụ đó và bắt đầu tìm điểm nóng và xem nơi truy vấn, nơi dữ liệu di chuyển, loại truy vấn, cách truy vấn được cấu trúc, Ai đang thực hiện các truy vấn và liệu các truy vấn đang được xếp hàng và phải được lưu trữ. Bản sao nào bạn tìm kiếm?
Và vì vậy, chúng tôi rất tốt và thực sự - theo quan điểm của tôi - tại thời điểm mà ngay cả các chuyên gia cơ sở dữ liệu tốt nhất thế giới, về cơ bản là các kiến trúc sư cơ sở dữ liệu và quản trị viên cơ sở dữ liệu của chúng tôi, theo quan điểm của tôi, họ rất cần bắt đầu tận dụng các công cụ phù hợp để cung cấp điều chỉnh chỉ số hiệu suất tối ưu cho bất kỳ công cụ cơ sở dữ liệu. Bởi vì quy mô mà chúng ta đang xử lý và tốc độ mà mọi thứ đang di chuyển, chúng ta chỉ đơn giản là không thể làm điều đó bằng tay và cố gắng làm điều đó luôn có thể giới thiệu các vấn đề hiệu suất khác, bởi vì chúng ta có thể không có kinh nghiệm trong không gian đó Chúng tôi đang cố gắng giải quyết vấn đề. Và tôi tin rằng đó là nơi chúng tôi sắp trao cho Bert, và chúng tôi sẽ nói về cách họ đã giải quyết vấn đề khác nhau này và loại công cụ mà công cụ của họ có thể làm, đặc biệt là cho thế giới Oracle. Và với điều đó, Bert, tôi sẽ chuyển cho bạn.
Bert Scalzo: Cảm ơn bạn. Xin chào mọi người, tên tôi là Bert Scalzo, tôi làm việc cho IDERA. Tôi là người quản lý sản phẩm cao cấp cho một số sản phẩm cơ sở dữ liệu của chúng tôi. Tôi sẽ trình diễn một số trong những ngày hôm nay. Nhưng tôi muốn nói về các chỉ mục, bởi vì tôi đồng ý với tất cả mọi thứ mà mọi người đã nói ở đây, đặc biệt là slide cuối cùng, rằng các chỉ mục rất phức tạp khi bạn cần một công cụ và tôi hy vọng sẽ thuyết phục được bạn. Vì vậy, thiết kế chỉ mục của Oracle, nó không dễ dàng như ngày xưa. Rất nhiều người sẽ không chắc chắn về bản thân họ khi họ nhìn vào các lựa chọn, và tôi thích câu nói này mà tôi rút ra từ lịch sử, chắc chắn trong những vấn đề này, điều chắc chắn duy nhất, là không có gì là chắc chắn cả. cảm thấy về các chỉ mục ngày nay, bởi vì ngay cả khi bạn nghĩ rằng bạn biết câu trả lời của bạn nên lập chỉ mục X, Y hoặc Z, bạn thực sự không thể chắc chắn cho đến khi bạn thử nó, bởi vì những tối ưu hóa đó đôi khi hành xử khác với cách bạn mong đợi. Và do đó, có rất nhiều thử nghiệm và lỗi với thiết kế chỉ mục. Bây giờ, trong những ngày xưa tốt đẹp, nếu bạn cần một chỉ số thường chỉ có hai câu hỏi, hoặc một câu hỏi. Nó là duy nhất hay nó không phải là duy nhất? Và bạn có thể đã nghĩ đến những thứ khác như, Có bao nhiêu chỉ số tôi có thể có tối đa trên một bảng?, Vì quá nhiều chỉ mục làm chậm quá trình chèn, cập nhật và xóa của bạn. Bạn cũng có thể đã ở trong hệ thống cơ sở dữ liệu của mình, có các hạn chế về số lượng cột có thể có trong một chỉ mục nhiều cột, bởi vì đôi khi có các giới hạn dựa trên kích thước trang hoặc khối của công cụ cơ sở dữ liệu của bạn, nhưng thực tế nó lại khá đơn giản trong những ngày xưa tốt đẹp Bạn đã lập chỉ mục hoặc bạn đã không. Và thực sự, mọi thứ đều ở trong cây B. Chúng tôi có thể cho phép các bản sao hoặc không, và đó là về nó. Cuộc sống thật tốt, cuộc sống thật đơn giản.
Ngày nay, cuộc sống không tốt hay đơn giản như vậy. Tôi đã đặt dấu hiệu Ghostbuster màu đỏ thông qua cách chúng ta thường làm, bởi vì bây giờ chúng ta có B-tree so với bitmap, so với tham gia bitmap. Và tôi sẽ giải thích những gì trong số này là trong một khoảnh khắc. Phân cụm và không phân cụm, duy nhất hoặc trùng lặp, thứ tự chuyển tiếp hoặc đảo ngược, dựa trên chức năng, phân vùng hoặc không phân vùng. Nếu có phân vùng liên quan, đó là phân vùng toàn cầu hay cục bộ? Tôi cũng sẽ giải thích điều đó. Và sau đó cũng có một cái gì đó gọi là một bảng được tổ chức lập chỉ mục. Và thực sự có nửa tá người khác mà tôi đã rời khỏi đây, bởi vì tôi nghĩ rằng tôi đã có đủ ở đây để thuyết phục bạn rằng các chỉ số khó khăn hơn nhiều so với bạn nghĩ. Trong slide đặc biệt này, tôi sẽ bắt đầu ở phần trên cùng bên trái của sơ đồ và tôi đã có một bảng. Và điều đầu tiên tôi phải quyết định là, tùy thuộc vào phiên bản cơ sở dữ liệu của bạn và nhà cung cấp cơ sở dữ liệu của bạn, họ có cho phép các bảng đối tượng hay chúng chỉ liên quan? Tôi sẽ đi xuống phía bên tay phải và nói rằng chúng tôi đang xây dựng một bảng quan hệ. Bây giờ, câu hỏi tiếp theo tôi phải tự hỏi mình là nó có nằm trong cụm không? Và rất nhiều bạn đã làm Oracle một thời gian sẽ nhớ rằng các cụm đã hoạt động trở lại trong 6 ngày. Có lẽ chúng không còn được sử dụng nhiều nữa ngày hôm nay, nhưng hãy để tôi đi xuống chi nhánh đó trước.
Nếu tôi định đặt bảng của mình vào một cụm, tôi sẽ phải có một chỉ mục được nhóm trên bảng đó. Bây giờ, trong Oracle, khi bạn phân cụm một bảng, về cơ bản bạn đang lưu trữ các hàng hoặc các hàng gần nhau, nơi các giá trị tương tự nhau. Và do đó, bạn phải có một chỉ mục được phân cụm và chỉ mục được phân cụm đó có thể không được phân vùng. Nói cách khác, thực sự không có bất kỳ phương pháp phân vùng nào cho cách bạn sẽ thực hiện một bảng phân cụm. Nó hoàn toàn không được phân vùng. Và bởi vì nó không được phân vùng, nó là toàn cầu. Tôi sẽ giải thích những gì toàn cầu trong một phút. Và nó luôn luôn là cây B. Nói cách khác, khi tôi đi xuống chi nhánh đó, nó khá đơn giản, tôi không có nhiều sự lựa chọn. Bây giờ, nếu tôi đã thực hiện một chỉ mục không phân cụm trên một bảng phân cụm, được cho phép trong một số phiên bản, thì một lần nữa nó không được phân vùng; khi nó không được phân vùng, thì lựa chọn duy nhất của bạn là toàn cầu. Và do đó, bạn có quyền lựa chọn B-tree hoặc bitmap. Một lần nữa, nó phụ thuộc vào phiên bản cơ sở dữ liệu của bạn. Nhưng bây giờ, chúng ta hãy quay trở lại bảng quan hệ và bắt đầu đi xuống phía bên tay phải một lần nữa và bây giờ chúng ta sẽ có một bảng đơn giản, cũ, đều đặn: quan hệ. Nó sẽ ở trong một không gian bàn. Tôi thuộc loại đi xuống phía bên tay phải ở đây trước. Vì vậy, đó là tổ chức, đống. Câu hỏi tiếp theo tôi phải tự hỏi mình là, Tôi có muốn phân vùng bảng này hay không? Bây giờ, đôi khi bạn sẽ phân vùng vì bạn nghĩ, Hey Hey, trình tối ưu hóa sẽ thông minh hơn về cách nó có thể tối ưu hóa các truy vấn. Tuy nhiên, rất nhiều DBA sẽ cho bạn biết rằng lý do bạn làm điều đó là vì mục đích hành chính. Nếu bạn có một bảng hàng trăm tỷ hàng, nếu bạn chia nó thành các phân vùng hoặc nhóm, khi bạn muốn thêm dữ liệu vào nhóm cuối cùng, bạn có thể thả và lập chỉ mục đó chỉ vài triệu hàng. Bạn có thể chèn dữ liệu đó và sau đó bạn có thể xây dựng lại chỉ mục đó trên thùng đó.
Mặc dù nó là một kỹ thuật tốt đối với một số người, các kỹ thuật tối ưu hóa như loại bỏ phân vùng, giá trị thực sự của nó là có thể quản trị hoặc thực hiện các tác vụ quản trị trên các phần nhỏ hơn. Khi tôi đi đến đống tổ chức, câu hỏi đầu tiên là, Tôi có phân vùng nó hay không? Hãy để bên trái, tôi sẽ không phân vùng bảng. Bây giờ, nó có vẻ kỳ lạ khi tôi nói với bạn điều này, nhưng bạn có thể có một bảng không được phân vùng và sau đó bạn không thể phân vùng chỉ mục như bạn đã quen hoặc bạn có thể phân vùng chỉ mục. Dừng lại và suy nghĩ. Bảng của bạn về cơ bản có một nhóm, như bạn luôn nghĩ, và chỉ mục của bạn sẽ có nhiều nhóm. Khi điều đó xảy ra, trong đó có sự không phù hợp giữa số lượng xô và bảng và số lượng xô trong chỉ mục, đó là ý nghĩa của toàn cầu. Và do đó, nếu bảng không được phân vùng và nếu chỉ mục được phân vùng, nó được coi là toàn cục, vì có sự không phù hợp. Bây giờ, hãy để tôi quay trở lại vào đống tổ chức của mình và thay vào đó ở phía phân vùng. Bây giờ, nếu tôi có một bảng phân vùng và giả sử bảng có bốn nhóm, bốn phân vùng, chỉ mục của tôi có thể có bốn nhóm để chỉ mục của tôi phù hợp với thiết kế bảng của tôi. Và như vậy là hết, trên hết, ở phía bên tay phải. Điều đó sẽ được coi là địa phương. Một chỉ mục cục bộ có nghĩa là về cơ bản phân vùng của bảng và chỉ mục được thực hiện theo cùng một cách và có cùng số lượng xô. Và sau khi tôi có chỉ mục cục bộ, nó có thể là cây B hoặc bitmap, và mũi tên màu xanh lá cây đó đi lên, cho bạn thấy rằng ngay cả khi đó là cây B, vẫn có những lựa chọn có thể được thực hiện. Nó có thể dựa trên chức năng. Và ngoài ra, nếu đó là bitmap, có nhiều loại bitmap khác nhau. Có một thứ gọi là chỉ số tham gia bitmap. Nếu bạn đang thực hiện lưu trữ dữ liệu, đó là một loại chỉ mục rất phổ biến cho thiết kế hoặc lược đồ sao. Điều xảy ra là chỉ mục có ID hàng cho những gì nó trỏ đến trong bảng, nhưng nó cũng sẽ có ID hàng cho các bảng cha mẹ để khi bạn - bạn phải thiết kế lược đồ sao và bạn đang tìm kiếm tại một bảng thực tế, chỉ mục đó trên bảng thực tế sẽ đưa bạn đến dữ liệu mà bạn quan tâm và chỉ cho bạn từng hàng trong các thứ nguyên của bạn, để bạn chỉ phải có một chỉ mục.
Và thực tế, điều này ra đời vì Red Brick, một cơ sở dữ liệu từ nhiều năm trước - rất nhiều người có thể nhớ điều đó. Và vì vậy, nếu bạn nhìn vào bức ảnh này - và hãy nhớ rằng tôi đã không đặt mọi thứ vào bức ảnh này bởi vì bức ảnh sẽ lớn hơn rất nhiều - vẫn còn những vấn đề khác, mà tôi có trong văn bản ở đây trên phần trên bên phải . Nó có phải là một chỉ số đảo ngược? Và bạn có thể nói, Tại sao tôi lại muốn có một chỉ số ngược? Điều đó chẳng có ý nghĩa gì cả. Vâng Vâng, nếu bạn đang ở trong một môi trường phân cụm trong Oracle, nếu bạn đang thực hiện các cụm ứng dụng thực sự, nếu bạn giữ các chỉ mục của mình theo thứ tự, thì không đảo ngược, nếu bạn có nhiều quá trình xử lý. các giá trị giống nhau hoặc cùng các giá trị chỉ mục, điều sẽ xảy ra là, bạn sẽ có các vùng nóng của cây B của mình. Có nghĩa là bạn sẽ có sự tranh chấp và có thể khóa để thử và truy cập vào nội dung đó và bạn sẽ thực hiện điều đó trên các nút trong mạng. Chà, nếu bạn đặt một chỉ mục ngược lại, bây giờ bạn có thể hoàn tác điều đó. Bạn có thể nói, À, các giá trị tương tự nằm ở các phần khác nhau của cây, vì vậy tôi không có các nút riêng biệt cạnh tranh cho các khu vực nóng trong cây. Sau đó, hãy chú ý rằng duy nhất không hoạt động với một số tùy chọn . Nếu bạn nhìn, tôi đã đánh số ba, năm, tám và mười một, vì vậy có một số trường hợp tôi không thể có một chỉ mục duy nhất. Tương tự như vậy, có một số trường hợp tôi không thể có một chỉ mục ngược lại, và sau đó có các vấn đề bổ sung như đăng nhập hoặc không đăng nhập, và song song và không song song. Tôi có thể gán mọi thứ cho một khu vực cụ thể trong bộ nhớ.
Và điều này vẫn còn khá nhiều tính năng trong Oracle. Tôi sẽ nói rằng khi bạn nhìn vào Oracle 12, có lẽ một lần nữa về nửa tá điều tôi có thể thêm vào bức tranh này. Lập chỉ mục thực sự phức tạp và tôi thực sự đồng ý với người nói trước, để điều hướng qua điều này và đưa ra lựa chọn tốt, bạn cần một công cụ. Bạn có thể cần một hình ảnh như thế này và một phương pháp nào đó về cách bạn sẽ chọn đồ và hy vọng công cụ này sẽ giúp bạn đến đó. Và sau đó sẽ là thử nghiệm và lỗi. Tôi luôn nói với mọi người về việc lập chỉ mục, tìm kiếm trước khi bạn nhảy. Sau đó, bạn có thể thấy con chó nhỏ ở đây, nó nhảy mà không nhìn, nó sẽ rơi xuống nước với con cá mập, hoặc anh chàng sẵn sàng nhảy xuống nước và anh ấy sẽ tự khắc mình. Bạn đã phải suy nghĩ về việc lập chỉ mục của mình, bởi vì việc tạo một chỉ mục không phải lúc nào cũng có nghĩa là mọi thứ trở nên tốt hơn. Trong thực tế, việc tạo ra một chỉ mục có thể làm mọi thứ chậm lại. Và hiệu suất truy vấn có thể là một thứ tự cường độ tốt hơn với một lựa chọn hơn một lựa chọn khác. Và tôi sẽ cho bạn một ví dụ tốt. Nếu bạn đang thực hiện một lược đồ sao về thiết kế và trên các bảng thứ nguyên của mình, bạn sử dụng các chỉ mục bitmap trong một trường hợp và trong trường hợp khác bạn nói, thì tôi sẽ sử dụng các chỉ mục của cây B, bạn đã có bitmap so với B- cây. Tôi có thể nói với bạn rằng một giải pháp sẽ là một trật tự cường độ hoặc có thể là một vài bậc độ lớn nhanh hơn các giải pháp khác. Nhưng hãy nhớ những gì hoạt động trong một môi trường, như trong môi trường lưu trữ dữ liệu, có lẽ không phải là một lựa chọn tốt trong môi trường OLTP.
Ví dụ: nếu bạn đã lấy một bảng giao dịch và đặt các chỉ mục bitmap trên một bảng giao dịch, sẽ rất tốn kém để tính toán và đặt lại các bitmap, các chuỗi dài này và do đó, trong một bảng OLTP, bạn có thể nhấn bảng rất nhiều để bitmap chỉ mục có thể bị hỏng và làm chậm hệ thống của bạn vì chúng không có nghĩa là để cập nhật. Chúng tuyệt vời để truy cập nhanh, nhưng không tốt cho cập nhật. Tôi nghĩ rằng chỉ số mất thử nghiệm và lỗi. Thực sự không còn quy tắc vàng nữa - có quá nhiều biến số khác nhau trong phương trình này - và cuối cùng bạn sẽ phải xem xét thực hiện hoặc giải thích các kế hoạch trong cơ sở dữ liệu của mình để xem liệu bạn có lựa chọn tốt hay không. Và đôi khi, phân tích kế hoạch gần như có thể là một khoa học cho chính nó. Hôm nay tôi sẽ không đề cập đến vấn đề đó - đó là một chủ đề khác - nhưng không được coi là thiết kế chỉ mục. Có những lý do chính đáng tại sao có tất cả các loại chỉ số điên rồ mà tôi đã chỉ cho bạn, trong hình trước, và người nói trước đã nói về. Chúng không chỉ được tạo bởi vì đây là một tính năng gọn gàng để đưa vào danh sách kiểm tra ở đâu đó cho nhà cung cấp cơ sở dữ liệu; có những trường hợp sử dụng hoặc kịch bản trong đó các chỉ mục này là quan trọng và sẽ tạo ra sự khác biệt đáng kể. Bây giờ với điều đó, tôi sẽ cho bạn thấy một số ví dụ về các loại chỉ mục khác nhau trong một trong các công cụ của chúng tôi. Hãy để tôi chỉ cho màn hình của tôi lên để bạn có thể nhìn thấy nó. Được rồi, vì vậy ở đây tôi đang ngồi bên trong - hãy để tôi thu nhỏ ứng dụng này. Tôi đang ngồi bên trong VMware và tôi đang chạy Windows Server 2012 VM.
Và bạn có thể thấy, tôi đã có mọi công cụ mà con người biết đến. Là người quản lý sản phẩm, tôi phải nhận thức được sự cạnh tranh của mình, vì vậy đó không chỉ là công cụ tôi có, mà là đối thủ của tôi làm gì? Và chúng tôi đã có công cụ này ở đây được gọi là DBArtisan, mà tôi đã chạy, nhưng tôi sẽ đi - vì vậy tôi sẽ chỉ đưa nó lên. Và những gì bạn có thể thấy là đây là một công cụ thực sự tốt, bởi vì thay vì phải sử dụng, hãy nói một người quản lý doanh nghiệp cho Oracle và SQL Management Studio cho SQL Server và MySQL Workbench cho MySQL và mười hai cơ sở dữ liệu khác mà chúng tôi hỗ trợ, Tôi đã có tất cả các cơ sở dữ liệu của mình được tích hợp trong một công cụ này. Có DB2, có MySQL, Oracle, Postgres, SQL Server và Sybase, và đó là - tôi chỉ có sáu cơ sở dữ liệu trong điều này vì tôi không thể - công cụ hỗ trợ mười hai cơ sở dữ liệu nhưng VM kém của tôi, chạy đồng thời sáu cơ sở dữ liệu và thử để làm một bản demo, phần lớn là phần cứng của tôi sẽ tạo điều kiện. Vì vậy, hãy để tôi quay trở lại vào Oracle ngay bây giờ và nếu bạn chú ý, tất cả những điều này đều giống nhau. Nếu tôi muốn đo lường hiệu suất của mình trong DB2, thì đó cũng chính là những lựa chọn tôi có trong Oracle. Bây giờ dưới vỏ bọc, chúng tôi làm rất nhiều thứ khác nhau để bạn không cần biết chuyện gì đang xảy ra, nhưng chúng tôi cung cấp cho bạn một giao diện nhất quán để bạn có thể trở thành chuyên gia với nhiều nền tảng cơ sở dữ liệu. Và điều đó sẽ bao gồm làm việc với các chỉ mục, chủ đề của cuộc thảo luận này.
Hãy để tôi vào đây và để tôi bắt đầu trước bằng cách xem xét một số bảng và tôi đã có một cơ sở dữ liệu phim chỉ có một vài bảng. Và nếu tôi xem một bảng cụ thể, như bảng khách hàng, khi tôi đưa nó lên đây, tôi có thể thấy thiết kế bảng của mình, đây là các cột trong bảng của tôi và đây là thông tin về mỗi cột. Tôi đã có các thuộc tính cho bảng, nhưng lưu ý rằng tôi có một tab ở đây cho các chỉ mục và tôi có thể thấy đây là các chỉ mục trên bảng. Lưu ý rằng một trong những chỉ mục này là chỉ số PK của tôi, khóa chính của tôi. Những cái khác này chỉ là chỉ mục để cải thiện quyền truy cập truy vấn, có thể chúng tôi truy vấn theo tên hoặc họ hoặc chúng tôi xem điện thoại và mã zip. Và nếu tôi chọn một chỉ mục cụ thể, như mã zip này ở đây và tôi nhấp đúp vào nó, bây giờ tôi có thể thấy rằng, đó là một chỉ mục không duy nhất và đây là một số loại khác, bitmap, không duy nhất, duy nhất, cho dù nó có được sắp xếp hay không, có ghi nhật ký hay không, có hay không thứ tự ngược lại, cho dù đó là cơ sở chức năng. Ồ, đây là một trò vui mà tôi không bao gồm. Bạn thực sự có thể có các chỉ số vô hình. Và bạn sẽ nói, thưa Chà, tại sao tôi lại muốn làm một chỉ số vô hình? À, tôi sẽ cho bạn một ví dụ điển hình. Bạn đang ở trong hệ thống sản xuất của mình và bạn gặp vấn đề về hiệu suất và bạn không chắc chắn việc tạo chỉ mục sẽ khắc phục sự cố, vì vậy bạn không muốn tạo chỉ mục và làm chậm sản xuất, nhưng bằng cách nào đó hoặc cách khác bạn muốn có thể kiểm tra nó Bạn có thể tạo chỉ mục trong sản xuất dưới dạng vô hình, nghĩa là không có nhiều mã ứng dụng, gọi trình tối ưu hóa, sẽ sử dụng chỉ mục đó. Nó đã được tạo, nó hợp lệ, nhưng nó sẽ không được sử dụng. Sau đó, bạn có thể lấy một truy vấn mà bạn nghĩ rằng chỉ mục này sẽ giúp hoặc một loạt các truy vấn và bạn có thể đưa ra một gợi ý và nói, Hey Hey, trình tối ưu hóa, có một chỉ mục vô hình mà tôi muốn bạn sử dụng và cho phép Tôi biết liệu tôi đã làm mọi thứ tốt hơn chưa. Bây giờ tôi đã thử nghiệm một thứ gì đó trong sản xuất, nhưng tôi đã không phá vỡ các ứng dụng trong sản xuất đang chạy. Đó là việc sử dụng cho một chỉ số vô hình. Nghe có vẻ ngu ngốc khi bạn lần đầu tiên nghe về nó, nhưng nó có một công dụng.
Chúng ta cũng có thể, trên các chỉ mục, xác định xem chúng có song song hay không và cũng có bao nhiêu trường hợp chúng song song. Bây giờ, trong môi trường cụm ứng dụng không phân cụm hoặc không thực, do đó, không song song, có nghĩa là có bao nhiêu quy trình phụ có thể truy vấn của tôi để thử và xử lý công nhân, để thử và xử lý nhanh hơn hoặc nhanh hơn . Và các trường hợp song song sẽ là, nếu tôi ở trong một cụm ứng dụng thực sự, giả sử tôi có mười nút, tôi được phép chia bao nhiêu nút? Có lẽ đó là bốn trong số mười, và trên mỗi trong số chúng, bốn quy trình phụ. Đó là một ví dụ. Và sau đó chúng tôi có nén chính. Bạn thực sự có thể nén chỉ mục? Có hay không. Và dĩ nhiên sau đó bạn có các tham số lưu trữ mà bạn có thể chỉ định trên các chỉ mục. Bây giờ, tôi đã không đề cập đến những điều này bởi vì chúng thực sự là một tham số lưu trữ hơn là một vấn đề về chỉ mục. Và cuối cùng, chúng ta có hay không làm cho các phân vùng này hoặc không phân vùng. Hãy để tôi thả nó ở đây trong một giây. Tôi sẽ đi đến một lược đồ khác. Đây là lược đồ sao và, ví dụ, bảng giai đoạn này là bảng thứ nguyên. Nếu bạn đã từng thực hiện thiết kế lược đồ sao, bạn thường có thứ nguyên theo thời gian và vì vậy trong cơ sở dữ liệu này và lược đồ sao này, khoảng thời gian là thứ nguyên thời gian. Bây giờ, tôi biết nó sẽ trông buồn cười, bạn sẽ nói, về Gee, nhìn vào tất cả các cột đó - anh chàng đã bao giờ nghe nói về việc bình thường hóa chưa?, Vâng, khi bạn ở trong kho dữ liệu hoặc thiết kế lược đồ sao, bạn thông thường không có - bạn có các bảng mà một người bình thường sẽ nhìn vào và nói, đó là Gee, những cái này không được thiết kế rất tốt. Nhưng đó là cách bạn làm trong môi trường lưu trữ dữ liệu.
Bây giờ, hãy xem điều gì sẽ xảy ra bởi vì, được rồi, có tất cả các cột này, hãy nhìn xem, tôi đã có một chỉ mục trên mỗi cột. Bây giờ, trong một môi trường OLTP sẽ là không. Nó sẽ làm chậm tất cả các hoạt động của tôi. Trong môi trường lưu trữ dữ liệu, tôi sẽ thả chúng trong các chu kỳ tải hàng loạt của mình. Tải mà không cần chi phí chung hoặc các chỉ mục và tôi sẽ tạo lại các chỉ mục. Và nếu tôi phân vùng bảng của mình, thì thay vì phải bỏ chỉ mục cho mỗi nhóm trong bảng, tôi chỉ có thể thả chỉ mục vào nhóm hoặc nhóm nơi dữ liệu sẽ đi vào trong chu kỳ tải hàng loạt đó. Và sau đó tạo lại chỉ phần cho các thùng đó. Và do đó làm cho nó rất dễ quản lý. Và nếu tôi nhìn vào - thì đây là một cột có tên là Holiday Holiday Flag và về cơ bản đó là có hoặc không. Lưu ý rằng đây là chỉ mục bitmap và đối với hầu hết các bạn sẽ nói, thì Vâng, điều đó có ý nghĩa. Có Có hoặc không, Y hoặc N, chỉ có hai giá trị có ý nghĩa. Và bởi vì khi bạn đọc tài liệu về các chỉ mục bitmap, chúng luôn bảo bạn chọn thứ gì đó có số lượng thẻ thấp.
Bây giờ hãy để tôi đi vào một trong những bảng thực tế của tôi, vì vậy ở đây chúng tôi có đơn đặt hàng của tôi. Và đây là đơn hàng của tôi mỗi ngày. Và bạn sẽ thấy bây giờ, một lần nữa tôi có khá nhiều cột và một lần nữa, tôi sẽ có nhiều hơn một vài chỉ mục. Và ngay tại đây, chúng ta có một thứ gọi là mã giá phổ quát. Cái này dành cho một cửa hàng bán lẻ, vì vậy bạn biết những mã vạch nhỏ đó khi bạn mua thứ gì đó ở cửa hàng, đây là mã giá phổ quát. Bây giờ, có hàng triệu mã giá phổ quát. Bây giờ, đối với công ty cụ thể đang bán công cụ này, họ có thể có 1, 7 đến 2 triệu mã giá phổ quát, vì vậy bạn sẽ hy vọng rằng đây sẽ không phải là một chỉ số bitmap vì 1, 7 triệu giá trị khác biệt nghe có vẻ cao. Nhưng trong thực tế, trong một môi trường lưu trữ dữ liệu, bạn muốn đây là một bitmap. Bây giờ, hãy để tôi giải thích tại sao. Chà, có thể có 1, 7 triệu giá trị riêng biệt cho mã giá phổ quát này, số lượng hàng trong bảng thứ tự này nằm trong hàng trăm triệu đến hàng tỷ hàng. Chỉ số của tôi là cardinality thấp so với kích thước hoặc cardinality của bảng. Điều đó làm cho nó cardinality thấp. Điều đó làm cho chỉ mục bitmap trở nên hữu ích, mặc dù nó phản trực giác với 1, 7 triệu giá trị riêng biệt mà bạn sẽ chọn bitmap ở đây. Bây giờ, nếu tôi biết rằng tôi muốn sử dụng chỉ mục tham gia bitmap, hiện tại sản phẩm không hỗ trợ điều đó, tôi sẽ thêm nó vào bản phát hành tiếp theo, nhưng đó sẽ là một lựa chọn khác ở đây. Và trong lược đồ sao, hãy nhớ rằng, chỉ mục bitmap sẽ nằm trên bảng thực tế và một chỉ mục trong cây B sẽ trỏ đến hàng trong bảng thực tế và sau đó đến mọi hàng rõ ràng trong bảng thứ nguyên cho thực tế đó . Và vì vậy, bạn có một lựa chọn khác ở đó. Và vì vậy, hãy xem, tôi muốn ra khỏi bàn ngay bây giờ và tôi chỉ muốn cho bạn thấy nhanh chóng rằng tôi có cùng thông tin, theo chỉ mục và tôi sẽ làm điều tương tự cơ bản.
Bây giờ, lý do tôi đưa ra điều này là bạn có thể nhận thấy, không có khóa chính ở đây. Các khóa chính được thực hiện với một ràng buộc khóa, vì vậy chúng thực sự được bao phủ bởi các định nghĩa ràng buộc. Đây sẽ là các chỉ mục không phải là một phần của ràng buộc. Bây giờ bạn có thể nói, thưa Chà, đợi một chút, nó có thể trông giống như khóa ngoại và khóa ngoại là một ràng buộc, khóa nhưng khóa ngoại và hầu hết các cơ sở dữ liệu không tự động tạo chỉ mục trên cột khóa ngoại, mặc dù nó khuyên bạn nên đi và bạn đi - Tôi đã có tất cả các lựa chọn tương tự một lần nữa. Và nếu tôi muốn thay đổi chỉ để được nén, tôi có thể làm điều đó.
Bây giờ nén chỉ hoạt động trên một chỉ mục cây B. Điều cho phép là, khi bạn nhìn vào các nút khác nhau trong cây B, nó cho phép nén một số giá trị. Nó thực sự không nén như nén bảng, đó là nén những gì được lưu trữ trong cây B trong các nút không có lá. Nó không tiết kiệm được một tấn không gian, nhưng nó có thể tạo ra sự khác biệt. Và với điều đó tôi nhận thấy rằng, tôi đang tiến gần đến thời gian, vì vậy điều tôi muốn làm là, tôi muốn quay lại và ngừng chia sẻ. Và, chúng tôi có sản phẩm của chúng tôi ở ngoài đó để dùng thử mười bốn ngày trên idera.com. Đây là một sản phẩm khá tốt, đặc biệt nếu bạn làm việc với nhiều nền tảng cơ sở dữ liệu. Nếu bạn làm việc với hai hoặc ba cơ sở dữ liệu khác nhau, công cụ này sẽ giúp cuộc sống của bạn dễ dàng hơn rất nhiều. Chúng tôi có các công cụ để giúp bạn thiết kế và lựa chọn chỉ mục, chúng tôi có một công cụ có tên là Trình tối ưu hóa DB. Tôi không thể nói rằng hôm nay, điều đó là quá nhiều. Và nếu bạn muốn liên hệ với tôi, có địa chỉ email của tôi, hoặc bạn có thể nhận được email của tôi và tôi đã có blog, tôi đã có một trang web và blog và một hồ sơ LinkedIn ở đó. Vì vậy, hãy thoải mái tiếp cận với tôi về bất cứ điều gì, ngay cả khi nó không liên quan đến sản phẩm, nếu bạn chỉ muốn nói chuyện về cơ sở dữ liệu, tôi là một người đam mê và tôi thích nói về công nghệ.
Eric Kavanagh: Được rồi, Dez, Robin, tôi chắc chắn rằng mỗi bạn ít nhất cũng có một vài câu hỏi, chúng tôi còn vài phút nữa ở đây. Dez, bạn nghĩ gì?
Dez Blanchfield: Tôi có một câu hỏi hay mà tôi phải hỏi bạn, đó là ngồi ở phía sau tâm trí tôi. Kịch bản điên rồ nhất bạn từng thấy là gì? Tôi đã đọc blog của bạn, tôi theo dõi bạn rất kỹ, - bạn, có lẽ bạn là một trong số ít người sống gần như không thể, và tôi nghĩ Tiến sĩ Robin Bloor là người thứ hai tôi gặp đời tôi Nhưng, bạn biết đấy, có lẽ bạn đã từng thấy mọi kịch bản điên rồ, một số tình huống điên rồ nhất bạn từng thấy, mà bạn đã gặp, và giống như những con người không thể đối phó, bạn đã xoay sở để đi bộ và thực hiện các thủ thuật tâm trí Jedi với toàn bộ DBArtisan này?
Bert Scalzo: Chúng tôi đã từng có một khách hàng, trong thiết kế cơ sở dữ liệu của họ, họ đã nghĩ rất nhiều về cách họ nghĩ trong thiết kế bố cục tệp, và vì vậy, khi bạn bình thường hóa cơ sở dữ liệu, điều đầu tiên bạn cố gắng làm là thoát khỏi của các nhóm lặp lại. Chà, họ đã có một cột và họ đã tạo ra một cột dài, hoặc BLOB hoặc CLOB, và trong đó họ sẽ đặt giá trị, số một, dấu chấm phẩy, giá trị số hai, dấu chấm phẩy, số giá trị, dấu chấm phẩy và họ sẽ có hàng ngàn giá trị trong đó, nhưng họ cần tìm kiếm trên cột đó và họ thích, Tại sao thứ này lại chạy quá chậm? Và tôi thích, ồ, bạn không thể tạo ra một chỉ mục về những gì bạn đã làm, chỉ là Không được phép. Vì vậy, chúng tôi thực sự đã cho họ thấy, bằng cách sử dụng các kế hoạch, rằng những gì họ cần làm là bình thường hóa bảng đó. Không phải vì bình thường hóa là một số bài tập học thuật làm cho mọi thứ tốt hơn, mà bởi vì họ muốn có một truy vấn trên lĩnh vực đó, điều đó có nghĩa là họ muốn có thể lập chỉ mục cho nó và bạn không thể lập chỉ mục cho một nhóm lặp lại, hoặc ít nhất là không dễ dàng . Và đó có lẽ là điều tồi tệ nhất tôi từng thấy.
Dez Blanchfield: Vâng, thật thú vị khi bạn thường xuyên đi qua, tôi nghĩ rằng thách thức với cơ sở dữ liệu, mọi người quên rằng đó là một khoa học. Và có những người làm bằng cấp và tiến sĩ trong toàn bộ không gian này, viết các bài báo về nó và bạn đã viết cả một đống giấy tờ bao gồm sổ tay TOAD của bạn và những thứ khác từ bộ nhớ. Xu hướng sắp xếp, trích dẫn dữ liệu lớn ngay bây giờ - Tôi thấy rất nhiều người quên mất các nguyên tắc cơ bản của kiến trúc cơ sở dữ liệu và công nghệ cơ sở dữ liệu, khoa học cơ sở dữ liệu, nếu bạn muốn. Bạn đang nhìn thấy gì trong lĩnh vực xa như sự thay đổi so với các nền tảng cơ sở dữ liệu truyền thống và cơ sở dữ liệu truyền thống nghĩ rằng chúng tôi đã thực hiện một cách hiệu quả, và đó chỉ là một trường hợp điều chỉnh và nhân rộng hiệu suất. Bạn có thấy nhiều người học lại và có một trải nghiệm khi họ chỉ ngồi đó và có một khoảnh khắc của a a ha ha, giống như một khoảnh khắc eureka, nơi họ nhận ra, thứ dữ liệu lớn này thực sự chỉ là một cơ sở dữ liệu thực sự lớn? Có phải đó là một điều ngoài kia và mọi người đang trả lời bạn và đại loại là, Chúng tôi đã quên, những gì chúng tôi biết và bạn có thể đưa chúng tôi trở lại từ phía bóng tối không?
Bert Scalzo: Chà, không, và điều này thật kinh khủng khi phải thừa nhận, nhưng các nhà cung cấp cơ sở dữ liệu quan hệ cũng đã uống Kool-Aid đó. Nếu bạn còn nhớ, tôi không biết, khoảng một thập kỷ trước, chúng tôi đã bắt đầu đưa dữ liệu phi cấu trúc vào cơ sở dữ liệu quan hệ, đó là một điều kỳ lạ phải làm, và sau đó dữ liệu, cơ sở dữ liệu quan hệ, hiện đang thêm loại NoQuery đồ đạc. Trên thực tế, trong Oracle 12, CR2 - tôi biết nó chưa ra mắt - nhưng nếu bạn xem bản beta, nếu bạn đang ở trong chương trình beta, nó hỗ trợ shending. Và vì vậy, bây giờ bạn đã có một cơ sở dữ liệu quan hệ không được thêm khái niệm từ shending NoQuery. Và vì vậy, khoảnh khắc của a a ha ha dường như dành cho những người ở phía quan hệ, những người sẽ đến với nhau, đó là một người sẽ không bao giờ làm điều đó một lần nữa, ngay cả những người quản lý cơ sở dữ liệu, vì vậy chúng tôi đã phải đi qua và tham gia vào mặt tối.
Dez Blanchfield: Đúng vậy, vì vậy bạn đang nói thay đổi rất nhiều dữ liệu lộn xộn, nếu tôi hiểu đúng, được đưa vào, cái mà chúng ta hiện đang gọi là nền tảng dữ liệu lớn, thật buồn cười, bởi vì chúng không phải là cũ, nhưng điều đó không có nghĩa là họ đang tập trung vào những gì họ đang làm với cơ sở dữ liệu quan hệ của họ để kiếm được nhiều tiền hơn?
Bert Scalzo: Không, thông thường, nếu họ có nhu cầu - đó sẽ được trích dẫn một nhu cầu kiểu dữ liệu lớn, thì họ đang tìm kiếm thay vì phải đi đến nền tảng cơ sở dữ liệu khác và làm một việc gì đó không phải - cách liên quan, các nhà cung cấp cơ sở dữ liệu hiện đang cung cấp cho họ các kỹ thuật phi quan hệ tương tự bên trong cơ sở dữ liệu quan hệ của họ, để thực hiện những việc đó. Ý tôi là, một ví dụ điển hình là, nếu bạn có dữ liệu phi cấu trúc, như kiểu dữ liệu JSON hoặc một số loại dữ liệu phức tạp khác có ý nghĩa được nhúng trong chính dữ liệu, các nhà cung cấp cơ sở dữ liệu không chỉ hỗ trợ mà còn cung cấp cho bạn ACID tuân thủ dữ liệu phi cấu trúc. Các cơ sở dữ liệu quan hệ đã nắm bắt các kỹ thuật và công nghệ mới hơn và do đó, một lần nữa, dường như không phải là vậy, vì Hey Hey, chúng tôi, các nhà phát triển ứng dụng, đã học được điều gì đó và chúng tôi cần học lại nó, đó là Hey Hey, chúng tôi làm theo cách này ngay bây giờ, làm thế nào tôi có thể làm theo cách đó trong cơ sở dữ liệu quan hệ truyền thống của bạn và làm như tôi làm trong cơ sở dữ liệu này ở đây? Và điều đó trở nên phổ biến hơn, và như tôi đã nói, chính các nhà cung cấp cơ sở dữ liệu đang kích hoạt cái đó.
Dez Blanchfield: Phải, ai là nghi phạm truyền thống trong không gian này cho công cụ DBArtisan và đó? Tôi đã làm một số bài tập về những gì bạn đã viết gần đây và từ bộ nhớ bạn đã viết một cái gì đó, tôi nghĩ đó là một trong những blog của bạn, về hiệu suất cơ sở dữ liệu cực cao trong thế giới Oracle. Tôi không thể nhớ được khi nào, tôi nghĩ rằng đôi khi trong năm nay từ bộ nhớ, hoặc từ cuối năm ngoái, bạn đã viết điều này. Và dường như đối với tôi, đó là nghi ngờ truyền thống, thông thường cho loại chủ đề chúng ta đang nói đến ngày hôm nay, nơi mọi người sẽ đến môi trường cơ sở dữ liệu quy mô rất lớn và tìm kiếm những gì bạn đang gọi là lợi ích cực kỳ trong đó. Ai là nghi phạm thông thường mà bạn đang nhìn thấy ngoài kia đang chiếm giữ DBArtisan và đưa nó vào sử dụng tốt?
Bert Scalzo: Chà, chúng tôi có rất nhiều khách hàng, thực tế, hôm nay tôi đã làm việc với một cơ quan chính phủ rất lớn - và họ có lẽ gần 1.000 bản sao của chúng tôi, vì nó cho phép mọi người tập trung vào những gì họ ' đang làm, và không làm thế nào để làm điều đó. Và nó ổn, ý tôi là, mọi người nên biết cách làm một cái gì đó, nhưng năng suất đang đạt được những gì mà những gì đã làm. Nếu doanh nghiệp yêu cầu tôi thực hiện một nhiệm vụ, đó là tất cả những gì họ quan tâm. Khi nào tôi nhận được một dấu kiểm để nói khi nào nhiệm vụ được thực hiện? Không phải kỹ thuật hay kỹ thuật gì tôi đã sử dụng để đạt được điều đó. Và vì vậy, công cụ của chúng tôi cho phép họ tập trung vào những gì và cho phép họ làm việc hiệu quả hơn và đó thực sự là lợi thế lớn, và như tôi đã nói, một số cơ sở dữ liệu cung cấp một công cụ chỉ dành cho nền tảng cơ sở dữ liệu của họ. Chúng tôi cung cấp nó cho mười hai nền tảng cơ sở dữ liệu. Tôi có cùng một quy trình làm việc, cùng một giao diện người dùng đồ họa, cùng các điều hướng. Nếu bạn biết cách cấp đặc quyền cho người dùng hoặc cách tạo bảng hoặc tạo chỉ mục trong cơ sở dữ liệu, bạn có thể thực hiện điều đó trong cả mười hai vì đó là giao diện giống nhau và quy trình làm việc giống nhau. Điều đó có giá trị rất lớn cho khách hàng của chúng tôi.
Dez Blanchfield: Vâng, tôi đoán, mọi người muốn kiếm được nhiều tiền hơn cho công việc của họ từ nguồn nhân lực của họ. Và những ngày có một chuyên gia cá nhân trong Oracle, Ingres và DB2 đều biến mất. Mọi người dự kiến sẽ là Jack của tất cả các ngành nghề, vì vậy tôi nghĩ rằng điều này đã hoàn toàn cứu sống họ.
Chỉ một điều nhanh chóng cuối cùng trước khi tôi đưa nó cho Bác sĩ Robin Bloor. Bạn đã đề cập đến việc tải xuống miễn phí trong mười bốn ngày, điều gì sẽ xảy ra - nếu tôi sẽ tiếp tục và tôi sẽ làm điều đó, nhân tiện, tôi sẽ đưa nó vào phòng thí nghiệm công nghệ Bloor và quay cái này tự mình nắm lấy nó - tôi đã không có cơ hội làm điều đó trước ngày hôm nay. Bạn đã đề cập đến bản dùng thử mười bốn ngày, bạn nói rằng bạn đang chạy nó trên máy ảo trên máy tính của mình, tôi cho rằng đó là máy tính xách tay. Cái gì là, thiết lập cấp nhập cảnh để ai đó bắt tay và sử dụng bản dùng thử mười bốn ngày như thế nào, ngay trước khi tôi trao lại cho Robin câu hỏi của anh ta?
Bert Scalzo: Bất kỳ môi trường Windows nào, vì vậy Windows 7, máy ảo với một CPU và bốn hợp đồng bộ nhớ. Chúng tôi không phải là một công cụ thực sự chất béo hoặc đắt tiền. Bây giờ nếu bạn muốn chạy máy chủ cơ sở dữ liệu của mình trên cùng một VM trong cùng một Windows đó, vâng, bạn sẽ cần thêm nhiều hơn, nhưng nếu bạn đang chạy cơ sở dữ liệu của mình trên một máy chủ cơ sở dữ liệu hoặc trên một VM riêng, VM sẽ tải và VM chạy sản phẩm của chúng tôi rất nhẹ: một CPU, bốn hợp đồng bộ nhớ, gần như bất kỳ phiên bản Windows nào - và chúng tôi hỗ trợ cả cài đặt ba mươi hai và sáu mươi bốn bit. Nhưng bạn phải cài đặt máy khách của nhà cung cấp cơ sở dữ liệu của bạn. Vì vậy, nếu bạn muốn kết nối với Oracle, bạn phải cài đặt máy khách SQL, bởi vì đó là những gì Oracle yêu cầu để bạn nói chuyện với cơ sở dữ liệu.
Dez Blanchfield: Nghe có vẻ khá đơn giản. Tôi nghĩ rằng một điều từ điều này hơn bất cứ điều gì tôi hy vọng rằng mọi người sẽ lấy đi, ngoài việc nhận ra rằng công cụ này sẽ cứu mạng họ, là họ nên tải xuống và chơi với nó, cho rằng bạn đang cung cấp bản dùng thử miễn phí mười bốn ngày. Và nó có thể chạy trên máy tính xách tay hiện tại của họ mà không cần cài đặt thêm bất cứ thứ gì, bởi vì nếu họ đang quản trị cơ sở dữ liệu, họ đã làm việc với cơ sở dữ liệu, họ đã có tất cả các công cụ đó và liệu nó có chạy trên máy ảo cục bộ hay trên máy ảo của họ không máy tính để bàn cục bộ, có vẻ như không đau để cài đặt và chơi với. Vì vậy, tôi rất khuyến khích mọi người làm điều đó.
Robin, tôi chắc chắn rằng bạn đã có câu hỏi và Eric, có lẽ bạn đã nhận được một số từ khán giả, vậy Robin, tôi chuyển cho bạn như thế nào, và sau đó quay lại với Eric?
Robin Bloor: Vâng, được rồi, tôi có nhiều điều muốn nói, ý tôi là, tôi luôn thấy khu vực này hấp dẫn bởi vì nó - tôi đã cắt răng trên đó. Nhưng sự thật là, có lẽ từ khoảng năm 1998, 1999, tôi đã hiểu rõ những gì Oracle thực sự có khả năng. Và, tôi biết Sybase và Microsoft SQL Server, cả hai đều khá đơn giản so với những gì Oracle có thể làm. Bạn làm tôi cười khi bạn - Ý tôi là, tôi che miệng lại, khi bạn bắt đầu nói về shending. Oracle đã làm điều này trước đây. Tại một số thời điểm, Oracle đã giới thiệu, họ cảm thấy lo lắng về ý tưởng liên quan đến đối tượng, vì vậy họ đã giới thiệu khả năng tạo ra một loại ký hiệu đối tượng và lưu trữ đối tượng trong Oracle và tôi đã nói chuyện với một trong những kỹ sư của họ, giống như một vài Nhiều năm sau khi họ giới thiệu nó và tôi đã hỏi có bao nhiêu người đã sử dụng nó và anh ấy nói tôi nghĩ rằng hai khách hàng đã dùng thử và đó là nó. Và tôi nghĩ điều tương tự sẽ xảy ra nếu họ bắt đầu thử và làm những thứ NoQuery theo xu hướng. Bạn biết đấy, tôi nghĩ đó là một sai lầm, ý tôi là, tôi quan tâm đến suy nghĩ của bạn. Chắc chắn, - họ uống Kool-Aid. Họ cảm thấy như thể họ đã có thể đưa ra các yêu cầu tương tự như các cơ sở dữ liệu NoQuery lớn như Cassandra, nhưng bạn biết đấy, nó có ý nghĩa gì với bạn không?
Bert Scalzo: Không, bạn đã đánh vào đầu đinh ngay trên đầu. Đối với tôi, tôi sẽ, nếu tôi sẽ làm quan hệ, tôi sẽ chọn một nhà cung cấp quan hệ như Oracle hoặc SQL Server hoặc DB2 hoặc Postgres, nhưng nếu tôi sẽ làm một việc gì đó không liên quan, trong không gian dữ liệu lớn hoặc không gian NoQuery, tôi sẽ chọn công cụ phù hợp cho công việc phù hợp. Và tôi không nghĩ rằng điều đó sẽ tự nhiên đến nhà cung cấp cơ sở dữ liệu quan hệ của tôi trước. Và sau đó, bạn thêm các nếp nhăn khác vào đó, đó là những gì có sẵn trong đám mây? Vì vậy, nhiều người muốn có được cơ sở dữ liệu của họ ra khỏi tiền đề. Sau đó, bạn phải nhìn vào nhà cung cấp đám mây của mình và nói, Đồng ý, nhà cung cấp của bạn là gì, bạn có sẵn cơ sở dữ liệu nào phù hợp với nhu cầu của tôi và mức độ đáng tin cậy của chúng, và thẳng thắn mức giá hoặc phí sử dụng cơ sở dữ liệu đó là bao nhiêu trong đám mây mỗi giờ, hoặc mỗi ngày. Và mỗi gigabyte hay terabyte? Và những gì bạn sẽ tìm thấy có thể là một số cơ sở dữ liệu tương đối mới hơn như Mongo hoặc Cassandra, có thể giá của chúng rẻ hơn, vì vậy nếu bạn định làm dữ liệu lớn nhiều loại petabyte, bạn có thể phải - chỉ từ quan điểm chi phí - phải xem xét cơ sở dữ liệu NoQuery trên đám mây bởi vì chúng có thể là cách hiệu quả nhất về chi phí để thực hiện.
Robin Bloor: Vâng, đúng. Ý tôi là, loại của tôi - điều về cơ sở dữ liệu quan hệ theo kinh nghiệm của tôi - đủ dài để có sẹo, chắc chắn - có rất nhiều ý nghĩa phổ biến rằng nếu bạn bắt đầu áp dụng nó và - bạn hiểu thực sự quan hệ là gì, đó là Ý tôi là, tôi nhớ sẽ thực hiện một số tư vấn với một khách hàng một lần, và họ dẫn tôi vào một phòng và họ đã thực hiện một loại sơ đồ thực thể và tạo ra một dạng bình thường thứ ba, một mô hình về hệ thống chính của công ty. Nó có hai trăm bốn mươi bàn và họ nói, đó là gì, bạn nghĩ gì về điều đó? Chúng tôi sẽ xây dựng một cơ sở dữ liệu cho việc này, và nói rằng Bạn nghĩ gì về điều đó? Tôi đã nói, tôi không nghĩ rằng nó sẽ hoạt động. Bạn biết đó là chính xác, bởi vì họ đã kết thúc lên để tạo cấu trúc cụ thể trong mười một cách tham gia. Và đó là điều cần hiểu về quan hệ. Vì vậy, tôi quan tâm đến việc bạn gặp phải bao nhiêu thiết kế tồi. Ý tôi là, tôi không có vấn đề gì với DBArtisan - nó đang làm những điều rất hợp lý và thực tế là bạn thực sự có thể hiển thị trên nhiều nền tảng, tôi nghĩ, thật tuyệt vời - nhưng bạn gặp phải vấn đề gì về thiết kế nơi mà mọi người có thể tự giải quyết tất cả các loại đau lòng nếu họ đi xuống một lược đồ sao thay vì nhận được bông tuyết-y về nó, bạn biết không?
Bert Scalzo: Chà, tôi không muốn nghe như, tự phụ hay kiêu ngạo, nhưng tôi sẽ nói thường xuyên hơn không. Rõ ràng, phần lớn các cơ sở dữ liệu mà tôi tham gia ngoài đó, chúng có vấn đề hoặc vấn đề. Điều này là tốt, bởi vì các công cụ của chúng tôi, như công cụ tối ưu hóa cơ sở dữ liệu của chúng tôi, có thể giúp chúng giải quyết các vấn đề đó, nhưng, điều thực sự buồn cười với tôi, đó là rất nhiều vấn đề là cùng một vấn đề đơn giản lặp đi lặp lại. Tôi mới làm việc với một khách hàng vào một ngày khác, người có truy vấn tham gia mười một chiều, và tôi rất thích, Được rồi, tại sao bạn không sử dụng một mệnh đề? Nhưng và họ giống như, thì Vâng, tôi đã không Tôi không biết đó là gì. Và sau đó tôi đã nói, Hãy nhìn vào những lựa chọn phụ của bạn ở đây về mối tương quan và không tương quan của bạn, tôi đã nói, trong một số trường hợp bạn có mệnh đề ở đâu ở mức sâu nhất, một tham chiếu bảng ở bên ngoài. Tôi đã nói, đó là, di chuyển nó ra đúng cấp độ, không nhúng nó sâu hơn mức cần thiết, bạn sẽ nhầm lẫn trình tối ưu hóa. Một vài điều chỉnh chúng tôi mất một cái gì đó đã chạy khoảng hai giờ và giảm xuống còn mười phút và chỉ là - trong trường hợp đó, chúng tôi đã không làm gì khác ngoài việc cải thiện SQL mà họ đã viết. Tôi nghĩ vấn đề là rất nhiều trường đại học và rất nhiều người học lập trình trong môi trường phi học thuật, họ học nó như các quy trình ghi thời gian hoặc quy trình định hướng hàng và quan hệ là một định hướng do tự nhiên, và vì vậy bạn phải suy nghĩ theo bộ để viết SQL tốt.
Robin Bloor: Vâng, tôi nghĩ điều đó hoàn toàn chính xác. Và bạn phải hiểu, đó là những thứ như, mọi người nên biết ABC về những thứ như thế này. Nó không thành vấn đề. Bạn sẽ không thể làm những điều hợp lý nếu bạn không nhận ra rằng ngay cả một cơ sở dữ liệu được thiết kế tốt, được mô hình hóa tốt, việc tham gia sẽ mất thời gian, sắp xếp sẽ mất thời gian. Họ làm bởi vì thế giới chưa bao giờ tìm ra cách khiến những người đó đi nhanh. Họ đã tìm ra cách tổ chức dữ liệu để họ đi nhanh hơn so với cách khác và rất nhiều sự nhiệt tình mà tôi phải nói đối với cơ sở dữ liệu NoQuery chỉ đơn giản là họ đang tránh tham gia. Họ chỉ bắt đầu xây dựng cơ sở dữ liệu với cùng một sự lan truyền dữ liệu, bởi vì nếu bạn tham gia vào bất kỳ cơ sở dữ liệu nào của NoQuery thì họ rất có thể. Bạn không nghĩ sao?
Bert Scalzo: Ồ hoàn toàn. Và tôi phải cười vì, tôi đã bắt đầu quay trở lại trước cơ sở dữ liệu quan hệ và trở lại khi Ingres là RTI, Viện công nghệ quan hệ và chúng tôi không có SQL, chúng tôi có ngôn ngữ quan hệ tiền SQL. Tôi nghĩ ở Ingres, hồi đó, nó được gọi là Quel. Vì vậy, bạn đã nhận được từ các mô hình cơ sở dữ liệu cũ như mạng và đồ họa cao hơn hoặc phân cấp và bạn trải qua các mô hình quan hệ sau một vài thập kỷ và bây giờ với tôi cảm giác như chúng ta sẽ quay trở lại gần như một thứ bậc. Nó gần giống như chúng tôi đã hoàn nguyên.
Robin Bloor: Vâng, đúng. Tốt hơn hết là hãy trao cho Eric, tôi đang tiêu tốn quá nhiều thời gian, nhưng chúng ta có câu hỏi nào từ khán giả không, Eric?
Eric Kavanagh: Chúng tôi có, chúng tôi đã có một vài. Chúng ta sẽ đi hơi lâu ở đây nhưng tôi sẽ ném cho bạn một đôi. Chúng tôi đã có một vài câu hỏi xung quanh các chỉ số vô hình. Có một câu hỏi là, ai đó có cần sử dụng công cụ của bạn để xem những thứ đó không? Một câu hỏi khác là, ồ, nếu bạn bị mù thì sao?
Bert Scalzo: Đó là một trong những tốt.
Eric Kavanagh: Câu hỏi tò mò quá, vì vậy chỉ cần FYI.
Bert Scalzo: Không, bạn không cần phải có công cụ của chúng tôi. Đó là một tính năng của Oracle, chỉ số bất khả xâm phạm. Về cơ bản trong từ điển dữ liệu, Oracle chỉ giữ một phần siêu dữ liệu có nội dung, Trình tối ưu hóa, bỏ qua chỉ mục này. Nó ở đây, nhưng trừ khi bạn được hướng dẫn về mặt vật lý thông qua một gợi ý trong, một gợi ý tối ưu hóa trong lệnh SQL, không sử dụng cái này. Và vì vậy, không, bạn không cần phải có các công cụ của chúng tôi và về mọi mặt là một chỉ mục cũ đơn giản, bạn có thể thấy nó trong bất kỳ công cụ nào, đó chỉ là trình tối ưu hóa sẽ nói, chúng tôi sẽ bỏ qua nó trong xử lý truy vấn thông thường. Bạn phải điều khiển nó nếu bạn muốn nó được sử dụng. Nó thực sự hữu ích cho kịch bản mà tôi đã mô tả, nếu bạn muốn xây dựng một chỉ mục trong sản xuất nhưng không có nguy cơ phá vỡ các báo cáo hoặc những thứ đang chạy, nhưng bạn muốn kiểm tra chúng, bạn có thể làm điều đó. Đó là những gì nó hữu ích nhất cho.
Eric Kavanagh: Đó là thứ tốt và sau đó có một câu hỏi hay khác ở đây. Những gì về một số các cơ sở dữ liệu trong bộ nhớ mới? Làm thế nào để công nghệ cơ sở dữ liệu trong bộ nhớ thay đổi trò chơi liên quan đến lập chỉ mục?
Bert Scalzo: Chàng trai, chúng ta - bây giờ thật tốt, tôi rất vui khi có ai đó hỏi câu hỏi đó, chúng ta sẽ phải đi thêm nửa tiếng nữa. Không, trong bộ nhớ, nó phụ thuộc vào nhà cung cấp cơ sở dữ liệu. Bây giờ, thông thường, tôi, tôi không nói gì ngoài lời khen ngợi về bất cứ điều gì mà Oracle làm vì đó là công nghệ tuyệt vời mà họ đã xây dựng, nhưng khi bạn xé lại dưới vỏ bọc và bạn nhìn vào những gì trong bộ nhớ trong Oracle, trong Oracle cơ sở dữ liệu, thực tế là nó vẫn lưu trữ hàng trên đĩa và nó sẽ được tải trong bộ nhớ cột trong bộ nhớ và nếu không đủ bộ nhớ để giữ toàn bộ bảng, nó sẽ quay trở lại cho các phần; Nó sẽ không phù hợp với bộ nhớ, để thực hiện lưu trữ hàng và vì vậy bạn thực sự có thể chọn một bảng và trong một nửa bảng, bạn đang sử dụng một chỉ mục đánh vào các hàng truyền thống trên bàn và cho nửa còn lại của lựa chọn nó thực sự ra ngoài và lấy tất cả mọi thứ từ tìm kiếm trong bộ nhớ, và do đó, nó khác với cách mà SQL Server, ví dụ, đã triển khai nó với công nghệ Hekaton của họ, và SQL 2014, và nó đã được cải thiện trong SQL 2016, nhưng ở một số khía cạnh, chúng là phiên bản đúng hơn của bộ nhớ trong, nhưng, mỗi triển khai đều có một ưu và nhược điểm, nhưng bạn phải nhìn vào vỏ bọc và nhận ra. Bởi vì, tôi đã có một khách hàng nói rằng, Bộ nhớ trong bộ nhớ của bảng này - Tôi sẽ vẽ ra tất cả các chỉ mục, và tôi thích, Một bảng lớn hơn bộ nhớ mà bạn có trên máy chủ, Vì vậy, tại một số điểm, một số truy vấn đã truy cập vào đĩa.
Eric Kavanagh: Đó là một mô tả hay; đó là thứ tốt Chà, mọi người, chúng ta sẽ có thêm một vài webcast với những người này trong phần còn lại của năm nay, hãy quay lại bất cứ khi nào bạn nghe về việc Bert đang thuyết trình vì chúng tôi biết anh ấy biết nội dung của anh ấy. Thật vui khi nói chuyện với các chuyên gia. Chúng tôi lưu trữ tất cả các webcast để xem sau. Đây là thông tin liên hệ của Bert một lần nữa và chúng tôi sẽ cố gắng tìm ra liên kết đó để tải xuống và gửi nó qua email, nhưng bạn luôn có thể gửi email cho bạn thật sự :, chúng tôi đã có thêm một loạt các webcast được xếp hàng cho việc này năm nay và chúng tôi đang thực hiện ed cal ngay bây giờ, vì vậy, mọi người, nếu có bất kỳ chủ đề nào bạn thực sự muốn nghe về năm tới, đừng ngại: Hãy cẩn thận, mọi người, chúng ta sẽ nói chuyện với bạn vào lần tới. Tạm biệt.
Đối tác nội dung của Techopedia
Nhân viên Techopedia được liên kết với Bloor Group và có thể liên hệ bằng cách sử dụng các tùy chọn bên phải. Để biết thông tin về cách chúng tôi làm việc với các đối tác trong ngành bấm vào đây.- Hồ sơ
- Trang mạng