Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

5.10. cách đọc kèo bóng đá bảng

PostgreSQLHỗ trợ cách đọc kèo bóng đá bảng cơ bản. Phần này mô tả lý do và cách thực hiện cách đọc kèo bóng đá như một phần của thiết kế cơ sở dữ liệu của bạn.

5.10.1. Tổng quan

cách đọc kèo bóng đá đề cập đến việc chia những gì một cách logic một bảng lớn thành các mảnh vật lý nhỏ hơn. cách đọc kèo bóng đá có thể cung cấp một số lợi ích:

  • Hiệu suất truy vấn có thể được cải thiện đáng kể trong các tình huống nhất định, đặc biệt khi hầu hết các hàng truy cập mạnh của bảng nằm trong một cách đọc kèo bóng đá hoặc một số lượng nhỏ các cách đọc kèo bóng đá. cách đọc kèo bóng đá thay thế cho các cột hàng đầu của các chỉ mục, giảm kích thước chỉ số và làm cho nhiều khả năng các phần được sử dụng nhiều của các chỉ mục phù hợp với bộ nhớ.

  • 12053_12296

  • Tải và xóa số lượng lớn có thể được thực hiện bằng cách thêm hoặc loại bỏ các cách đọc kèo bóng đá, nếu yêu cầu đó được lên kế hoạch vào thiết kế cách đọc kèo bóng đá. Đang làmthay đổi cách đọc kèo bóng đá phân tách bảnghoặc thả một cách đọc kèo bóng đá riêng lẻ bằng cách sử dụngBẢNG DROPnhanh hơn nhiều so với hoạt động hàng loạt. Các lệnh này cũng hoàn toàn tránhNút hútChi phí gây ra bởi một số lượng lớnXóa.

  • Dữ liệu hiếm khi được sử dụng có thể được di chuyển sang phương tiện lưu trữ rẻ hơn và chậm hơn.

Những lợi ích thường sẽ chỉ có giá trị khi một bảng sẽ rất lớn. Điểm chính xác mà bảng sẽ được hưởng lợi từ việc cách đọc kèo bóng đá phụ thuộc vào ứng dụng, mặc dù quy tắc ngón tay cái là kích thước của bảng phải vượt quá bộ nhớ vật lý của máy chủ cơ sở dữ liệu.

PostgreSQLcung cấp hỗ trợ tích hợp cho các hình thức cách đọc kèo bóng đá sau:

cách đọc kèo bóng đá phạm vi

Bảng được cách đọc kèo bóng đá thànhPhạm viHồiĐược xác định bởi một cột hoặc tập hợp các cột, không có sự chồng chéo giữa các phạm vi của các giá trị được gán cho các cách đọc kèo bóng đá khác nhau. Ví dụ: người ta có thể cách đọc kèo bóng đá theo phạm vi ngày hoặc theo phạm vi định danh cho các đối tượng kinh doanh cụ thể.

Danh sách cách đọc kèo bóng đá

Bảng được cách đọc kèo bóng đá bằng cách liệt kê rõ ràng giá trị khóa nào xuất hiện trong mỗi cách đọc kèo bóng đá.

Nếu ứng dụng của bạn cần sử dụng các hình thức cách đọc kèo bóng đá khác không được liệt kê ở trên, các phương pháp thay thế như kế thừa vàLiên minh tất cảChế độ xem có thể được sử dụng thay thế. Các phương pháp như vậy mang lại sự linh hoạt nhưng không có một số lợi ích hiệu suất của cách đọc kèo bóng đá khai báo tích hợp.

5.10.2. cách đọc kèo bóng đá khai báo

​​PostgreSQLCung cấp một cách để chỉ định cách chia bảng thành các phần gọi là cách đọc kèo bóng đá. Bảng được chia được gọi làBảng cách đọc kèo bóng đá. Thông số kỹ thuật bao gồmPhương pháp cách đọc kèo bóng đávà danh sách các cột hoặc biểu thức được sử dụng làmPhím cách đọc kèo bóng đá.

Tất cả các hàng được chèn vào bảng được cách đọc kèo bóng đá sẽ được chuyển đến một trongcách đọc kèo bóng đáDựa trên giá trị của khóa cách đọc kèo bóng đá. Mỗi cách đọc kèo bóng đá có một tập hợp con của dữ liệu được xác định bởigiới hạn cách đọc kèo bóng đá. Các phương thức cách đọc kèo bóng đá hiện đang được hỗ trợ bao gồm phạm vi và danh sách, trong đó mỗi cách đọc kèo bóng đá được gán một phạm vi khóa và danh sách các khóa tương ứng.

cách đọc kèo bóng đá có thể được định nghĩa là các bảng được cách đọc kèo bóng đá, sử dụng cái được gọi làphụ cách đọc kèo bóng đá. Các cách đọc kèo bóng đá có thể có các chỉ mục, ràng buộc và giá trị mặc định riêng của chúng, khác với các cách đọc kèo bóng đá khác.Tạo bảngĐể biết thêm chi tiết về việc tạo các bảng và cách đọc kèo bóng đá được cách đọc kèo bóng đá.

Không thể biến bảng thông thường thành bảng được cách đọc kèo bóng đá hoặc ngược lại. Tuy nhiên, có thể thêm một bảng thông thường hoặc cách đọc kèo bóng đá chứa dữ liệu dưới dạng cách đọc kèo bóng đá của bảng được cách đọc kèo bóng đá hoặc xóa cách đọc kèo bóng đá khỏi bảng được cách đọc kèo bóng đá biến nó thành một bảng độc lập;Bảng thay đổiĐể tìm hiểu thêm vềĐính kèm cách đọc kèo bóng đácách đọc kèo bóng đá táchphụ.

Các cách đọc kèo bóng đá riêng lẻ được liên kết với bảng được cách đọc kèo bóng đá với sự kế thừa hậu trường; Tuy nhiên, không thể sử dụng một số tính năng kế thừa được thảo luận trong phần trước với các bảng và cách đọc kèo bóng đá được cách đọc kèo bóng đá.TableoidVà tất cả các quy tắc kế thừa thông thường được áp dụng như được mô tả trongPhần 5.9Với một số ngoại lệ, đáng chú ý nhất là:

  • cảKiểm trakhông nullCác ràng buộc của bảng được cách đọc kèo bóng đá luôn được kế thừa bởi tất cả các cách đọc kèo bóng đá của nó.Kiểm traCác ràng buộc được đánh dấuKhông kế thừakhông được phép tạo trên các bảng được cách đọc kèo bóng đá.

  • sử dụngchỉĐể thêm hoặc thả một ràng buộc chỉ trên bảng được cách đọc kèo bóng đá được hỗ trợ khi không có cách đọc kèo bóng đá. Khi các cách đọc kèo bóng đá tồn tại, sử dụngchỉsẽ dẫn đến một lỗi khi thêm hoặc bỏ các ràng buộc trên bảng được cách đọc kèo bóng đá, khi các cách đọc kèo bóng đá tồn tại, không được hỗ trợ. Thay vào đó, các ràng buộc có thể được thêm hoặc bỏ, khi chúng không có trong bảng cha, trực tiếp trên các cách đọc kèo bóng đá.cắt ngắn chỉTrên bảng được cách đọc kèo bóng đá sẽ luôn trả về lỗi.

  • cách đọc kèo bóng đá không thể có các cột không có trong cha mẹ. Không thể chỉ định các cột khi tạo các cách đọc kèo bóng đá vớiTạo bảngCũng không thể thêm các cột vào các cách đọc kèo bóng đá sau khi thực tế bằng cách sử dụngBảng thay đổi. Các bảng có thể được thêm vào dưới dạng cách đọc kèo bóng đá vớiBảng thay đổi ... Đính kèm cách đọc kèo bóng đáChỉ khi cột của họ khớp chính xác với cha mẹ, bao gồm bất kỳ nàoOIDcột.

  • Bạn không thể bỏkhông nullràng buộc trên cột của cách đọc kèo bóng đá nếu ràng buộc có trong bảng cha mẹ.

cách đọc kèo bóng đá cũng có thể là các bảng nước ngoài (xemTạo bảng nước ngoài), mặc dù những điều này có một số hạn chế mà các bảng bình thường thì không. Ví dụ: dữ liệu được chèn vào bảng được cách đọc kèo bóng đá không được chuyển đến các cách đọc kèo bóng đá bảng nước ngoài.

5.10.2.1. Ví dụ

Giả sử chúng ta đang xây dựng một cơ sở dữ liệu cho một công ty kem lớn. Công ty đo nhiệt độ cực đại mỗi ngày cũng như doanh số bán kem ở mỗi khu vực.

Tạo phép đo bảng (

Chúng tôi biết rằng hầu hết các truy vấn sẽ truy cập chỉ vào dữ liệu tuần trước, tháng hoặc quý, vì việc sử dụng bảng này sẽ là chuẩn bị báo cáo trực tuyến để quản lý. Để giảm lượng dữ liệu cũ cần được lưu trữ, chúng tôi quyết định chỉ giữ dữ liệu trị giá 3 năm gần đây nhất.

Để sử dụng cách đọc kèo bóng đá khai báo trong trường hợp này, sử dụng các bước sau:

  1. TạoĐo lườngBảng dưới dạng bảng được cách đọc kèo bóng đá bằng cách chỉ địnhcách đọc kèo bóng đá bởimệnh đề, bao gồm phương thức cách đọc kèo bóng đá (phạm viTrong trường hợp này) và danh sách (các) cột để sử dụng làm khóa cách đọc kèo bóng đá.

    Tạo phép đo bảng (

    Bạn có thể quyết định sử dụng nhiều cột trong khóa cách đọc kèo bóng đá để cách đọc kèo bóng đá phạm vi, nếu muốn. Tất nhiên, điều này thường sẽ dẫn đến một số lượng lớn các cách đọc kèo bóng đá, mỗi cách đọc kèo bóng đá nhỏ hơn.LastNameFirstName(theo thứ tự đó) làm khóa cách đọc kèo bóng đá.

  2. Tạo cách đọc kèo bóng đá. Định nghĩa của mỗi cách đọc kèo bóng đá phải chỉ định các giới hạn tương ứng với phương thức cách đọc kèo bóng đá và khóa cách đọc kèo bóng đá của cha mẹ.

    Các cách đọc kèo bóng đá do đó được tạo theo mọi cách bình thườngPostgreSQLBảng (hoặc, có thể, các bảng nước ngoài). Có thể chỉ định một không gian bảng và tham số lưu trữ cho từng cách đọc kèo bóng đá.

    Không cần thiết phải tạo các ràng buộc bảng mô tả điều kiện biên cách đọc kèo bóng đá cho các cách đọc kèo bóng đá. Thay vào đó, các ràng buộc cách đọc kèo bóng đá được tạo ra ngầm từ thông số kỹ thuật ràng buộc cách đọc kèo bóng đá bất cứ khi nào cần phải tham khảo chúng.

    Tạo bảng đo_Y2006M02 cách đọc kèo bóng đá đo lường

    Để thực hiện cách đọc kèo bóng đá phụ, chỉ địnhcách đọc kèo bóng đá bởimệnh đề trong các lệnh được sử dụng để tạo các cách đọc kèo bóng đá riêng lẻ, ví dụ:

    Tạo bảng đo_Y2006M02 cách đọc kèo bóng đá đo lường

    Sau khi tạo các cách đọc kèo bóng đá củaĐo lường_Y2006M02, bất kỳ dữ liệu nào được chèn vàoĐo lườngđược ánh xạ tớiĐo lường_Y2006M02(hoặc dữ liệu được chèn trực tiếp vàođo_Y2006M02, với điều kiện nó thỏa mãn ràng buộc cách đọc kèo bóng đá của nó) sẽ được chuyển hướng thêm đến một trong các cách đọc kèo bóng đá của nó dựa trênPeakTempCột. Khóa cách đọc kèo bóng đá được chỉ định có thể trùng với khóa cách đọc kèo bóng đá của cha mẹ, mặc dù cần cẩn thận khi chỉ định giới hạn của một phần phụ sao cho tập hợp dữ liệu mà nó chấp nhận cấu thành một tập hợp con của những gì giới hạn của cách đọc kèo bóng đá cho phép;

  3. Tạo một chỉ mục trên (các) cột chính, cũng như bất kỳ chỉ mục nào khác mà bạn có thể muốn cho mọi cách đọc kèo bóng đá. .

    Tạo chỉ mục về đo lường_y2006m02 (logdate);
  4. Đảm bảo rằnginstraint_exclusionTham số cấu hình không bị vô hiệu hóa trongPostgreSql.conf. Nếu có, các truy vấn sẽ không được tối ưu hóa như mong muốn.

Trong ví dụ trên, chúng tôi sẽ tạo một cách đọc kèo bóng đá mới mỗi tháng, do đó có thể là khôn ngoan khi viết một tập lệnh tạo DDL cần thiết tự động.

5.10.2.2. Bảo trì cách đọc kèo bóng đá

Thông thường tập hợp các cách đọc kèo bóng đá được thiết lập khi xác định bảng ban đầu không nhằm mục đích tĩnh. Người ta thường muốn loại bỏ các cách đọc kèo bóng đá dữ liệu cũ và định kỳ thêm các cách đọc kèo bóng đá mới cho dữ liệu mới.

Tùy chọn đơn giản nhất để xóa dữ liệu cũ là bỏ cách đọc kèo bóng đá không còn cần thiết nữa:

26434_26468

Điều này có thể nhanh chóng xóa hàng triệu bản ghi vì nó không phải xóa riêng mọi bản ghi. Tuy nhiên, lưu ý rằng lệnh trên yêu cầu lấyQuyền truy cập độc quyềnkhóa trên bảng cha.

Một tùy chọn khác thường thích hơn là xóa cách đọc kèo bóng đá khỏi bảng được cách đọc kèo bóng đá nhưng giữ quyền truy cập vào nó dưới dạng bảng theo đúng nghĩa của nó:

thay đổi phép đo bảng cách đọc kèo bóng đá phân vùng_Y2006M02;

Điều này cho phép các hoạt động tiếp theo được thực hiện trên dữ liệu trước khi nó bị loại bỏ. Ví dụ: đây thường là thời gian hữu ích để sao lưu dữ liệu bằng cách sử dụngCopy, PG_DUMPhoặc các công cụ tương tự. Nó cũng có thể là một thời gian hữu ích để tổng hợp dữ liệu thành các định dạng nhỏ hơn, thực hiện các thao tác dữ liệu khác hoặc chạy báo cáo.

Tương tự chúng ta có thể thêm một cách đọc kèo bóng đá mới để xử lý dữ liệu mới. Chúng ta có thể tạo một cách đọc kèo bóng đá trống trong bảng được cách đọc kèo bóng đá giống như các cách đọc kèo bóng đá ban đầu đã được tạo ở trên:

Tạo bảng đo_Y2008M02 cách đọc kèo bóng đá đo lường

Thay thế, đôi khi thuận tiện hơn để tạo bảng mới bên ngoài cấu trúc cách đọc kèo bóng đá và biến nó thành một cách đọc kèo bóng đá thích hợp sau. Điều này cho phép dữ liệu được tải, kiểm tra và chuyển đổi trước khi nó xuất hiện trong bảng được cách đọc kèo bóng đá:

Tạo bảng đo_Y2008M02

Trước khi chạyĐính kèm cách đọc kèo bóng đálệnh, nên tạo mộtKiểm traràng buộc trên bảng để được đính kèm khớp với ràng buộc cách đọc kèo bóng đá mong muốn. Bằng cách đó, hệ thống sẽ có thể bỏ qua quét để xác thực ràng buộc cách đọc kèo bóng đá ngầm.Kiểm traràng buộc, bảng sẽ được quét để xác thực ràng buộc cách đọc kèo bóng đá trong khi giữ mộtAccess ExclusiveKhóa trên bảng cha. Nó có thể được mong muốn để giảm dự phòngKiểm traràng buộc sauĐính kèm cách đọc kèo bóng đáđã hoàn thành.

5.10.2.3. Hạn chế

Những hạn chế sau đây áp dụng cho các bảng được cách đọc kèo bóng đá:

  • Không có cơ sở nào để tạo các chỉ mục phù hợp trên tất cả các cách đọc kèo bóng đá. Các chỉ mục phải được thêm vào từng cách đọc kèo bóng đá với các lệnh riêng biệt.

  • Vì các khóa chính không được hỗ trợ trên các bảng được cách đọc kèo bóng đá, các khóa tham khảo các khóa nước ngoài không được hỗ trợ, cũng không phải là tài liệu tham khảo khóa nước ngoài từ bảng được cách đọc kèo bóng đá sang bảng khác.

  • Sử dụngtrên xung độtmệnh đề với các bảng được cách đọc kèo bóng đá sẽ gây ra lỗi, bởi vì các ràng buộc độc đáo hoặc loại trừ chỉ có thể được tạo trên các cách đọc kèo bóng đá riêng lẻ. Không có hỗ trợ để thực thi tính duy nhất (hoặc ràng buộc loại trừ) trên toàn bộ phân cấp cách đọc kèo bóng đá.

  • ANCập nhậtkhiến một hàng di chuyển từ cách đọc kèo bóng đá này sang cách đọc kèo bóng đá khác, vì giá trị mới của hàng không thỏa mãn ràng buộc cách đọc kèo bóng đá ngầm của cách đọc kèo bóng đá ban đầu.

  • Kích hoạt hàng, nếu cần, phải được xác định trên các cách đọc kèo bóng đá riêng lẻ, không phải bảng cách đọc kèo bóng đá.

  • Trộn các mối quan hệ tạm thời và vĩnh viễn trong cùng một cây cách đọc kèo bóng đá không được phép. Do đó, nếu bảng được cách đọc kèo bóng đá là vĩnh viễn, thì phải là các cách đọc kèo bóng đá của nó và tương tự như vậy nếu bảng được cách đọc kèo bóng đá là tạm thời.

5.10.3. Thực hiện bằng cách sử dụng kế thừa

Trong khi cách đọc kèo bóng đá khai báo tích hợp phù hợp cho hầu hết các trường hợp sử dụng phổ biến, có một số trường hợp mà một cách tiếp cận linh hoạt hơn có thể hữu ích. cách đọc kèo bóng đá có thể được thực hiện bằng cách sử dụng kế thừa bảng, cho phép một số tính năng không được hỗ trợ bởi cách đọc kèo bóng đá khai báo, chẳng hạn như:

  • 31819_32013

  • Kế thừa bảng cho phép nhiều kế thừa.

  • cách đọc kèo bóng đá khai báo chỉ hỗ trợ cách đọc kèo bóng đá danh sách và phạm vi, trong khi kế thừa bảng cho phép dữ liệu được chia theo cách chọn người dùng. (Tuy nhiên, lưu ý rằng nếu loại trừ ràng buộc không thể cắt tỉa một cách hiệu quả, hiệu suất truy vấn sẽ rất kém.)

  • Một số hoạt động yêu cầu khóa mạnh hơn khi sử dụng cách đọc kèo bóng đá khai báo so với khi sử dụng kế thừa bảng. Ví dụ: thêm hoặc xóa cách đọc kèo bóng đá vào hoặc từ bảng được cách đọc kèo bóng đá yêu cầu lấyAccess ExclusiveKhóa trên bảng cha mẹ, trong khi ACập nhật chia sẻ độc quyềnKhóa là đủ trong trường hợp thừa kế thông thường.

5.10.3.1. Ví dụ

Chúng tôi sử dụng không cách đọc kèo bóng đáĐo lườngBảng trên. Để thực hiện cách đọc kèo bóng đá bằng cách sử dụng kế thừa, hãy sử dụng các bước sau:

  1. TạoMasterHồiBảng, từ đó tất cả các cách đọc kèo bóng đá sẽ kế thừa. Bảng này sẽ không chứa dữ liệu.Đo lườngBảng như được định nghĩa ban đầu.

  2. Tạo một sốconBảng mà mỗi kế thừa từ bảng chính. Thông thường, các bảng này sẽ không thêm bất kỳ cột nào vào tập hợp được kế thừa từ chủ.PostgreSQLBảng (hoặc bảng nước ngoài).

    Tạo bảng đo_Y2006M02 () kế thừa (đo lường);
  3. Thêm các ràng buộc bảng không chồng chéo vào các bảng cách đọc kèo bóng đá để xác định các giá trị khóa được phép trong mỗi cách đọc kèo bóng đá.

    Ví dụ điển hình sẽ là:

    Kiểm tra (x = 1)

    Đảm bảo rằng các ràng buộc đảm bảo rằng không có sự chồng chéo giữa các giá trị khóa được phép trong các cách đọc kèo bóng đá khác nhau. Một lỗi phổ biến là thiết lập các ràng buộc phạm vi như:

    Kiểm tra (Outletid từ 100 đến 200)

    Điều này là sai vì không rõ cách đọc kèo bóng đá nào giá trị khóa 200 thuộc về.

    Thay vào đó, sẽ tốt hơn nếu tạo các cách đọc kèo bóng đá như sau:

    Tạo bảng đo_Y2006M02 (
  4. Đối với mỗi cách đọc kèo bóng đá, hãy tạo một chỉ mục trên (các) cột chính, cũng như bất kỳ chỉ mục nào khác mà bạn có thể muốn.

    36223_36609
  5. Chúng tôi muốn ứng dụng của chúng tôi có thể nóiChèn vào phép đo ...và có dữ liệu được chuyển hướng vào bảng cách đọc kèo bóng đá thích hợp. Chúng ta có thể sắp xếp điều đó bằng cách gắn hàm kích hoạt phù hợp vào bảng chính.

    Tạo hoặc thay thế chức năng đo lường_insert_trigger ()

    Sau khi tạo chức năng, chúng tôi tạo một trình kích hoạt gọi chức năng kích hoạt:

    Tạo Trigger Insert_Meas mua sắm_Trigger

    Chúng ta phải xác định lại chức năng kích hoạt mỗi tháng để nó luôn chỉ vào cách đọc kèo bóng đá hiện tại. Tuy nhiên, định nghĩa kích hoạt không cần phải được cập nhật.

    Chúng tôi có thể muốn chèn dữ liệu và có máy chủ tự động xác định vị trí cách đọc kèo bóng đá mà hàng nên được thêm vào. Chúng ta có thể làm điều này với chức năng kích hoạt phức tạp hơn, ví dụ:

    Tạo hoặc thay thế chức năng Đo_insert_trigger ()

    Định nghĩa kích hoạt giống như trước đây. Lưu ý rằng mỗinếuKiểm tra phải khớp chính xác vớiKiểm traràng buộc cho cách đọc kèo bóng đá của nó.

    Trong khi chức năng này phức tạp hơn trường hợp một tháng, nó không cần phải được cập nhật thường xuyên, vì các nhánh có thể được thêm vào trước khi cần thiết.

    Lưu ý

    Trong thực tế, tốt nhất là kiểm tra cách đọc kèo bóng đá mới nhất trước, nếu hầu hết các chèn sẽ đi vào cách đọc kèo bóng đá đó. Để đơn giản, chúng tôi đã hiển thị các thử nghiệm của kích hoạt theo cùng thứ tự như trong các phần khác của ví dụ này.

    Một cách tiếp cận khác để chuyển hướng chèn vào bảng cách đọc kèo bóng đá thích hợp là thiết lập các quy tắc, thay vì kích hoạt trên bảng chính. Ví dụ:

    Tạo quy tắc đo lường_insert_y2006m02 AS

    Một quy tắc có chi phí cao hơn đáng kể so với kích hoạt, nhưng chi phí được trả một lần cho mỗi truy vấn thay vì một lần mỗi hàng, vì vậy phương pháp này có thể thuận lợi cho các tình huống chèn. Tuy nhiên, trong hầu hết các trường hợp, phương pháp kích hoạt sẽ cung cấp hiệu suất tốt hơn.

    Nhận thức rằngCopyBỏ qua các quy tắc. Nếu bạn muốn sử dụngsao chépĐể chèn dữ liệu, bạn sẽ cần sao chép vào bảng cách đọc kèo bóng đá chính xác thay vì vào chủ.CopyCác kích hoạt lửa, vì vậy bạn có thể sử dụng nó bình thường nếu bạn sử dụng phương pháp kích hoạt.

    Một nhược điểm khác của phương pháp quy tắc là không có cách nào đơn giản để buộc lỗi nếu tập hợp các quy tắc không bao gồm ngày chèn; Dữ liệu sẽ âm thầm đi vào bảng chính.

  6. Đảm bảo rằnginstraint_exclusionTham số cấu hình không bị vô hiệu hóa trongPostgreSql.conf. Nếu có, các truy vấn sẽ không được tối ưu hóa như mong muốn.

Như chúng ta có thể thấy, một sơ đồ cách đọc kèo bóng đá phức tạp có thể yêu cầu một lượng DDL đáng kể. Trong ví dụ trên, chúng tôi sẽ tạo một cách đọc kèo bóng đá mới mỗi tháng, vì vậy có thể là khôn ngoan khi viết một tập lệnh tạo DDL cần thiết tự động.

5.10.3.2. Bảo trì cách đọc kèo bóng đá

Để loại bỏ dữ liệu cũ một cách nhanh chóng, chỉ cần thả cách đọc kèo bóng đá không còn cần thiết:

41539_41573

Để loại bỏ cách đọc kèo bóng đá khỏi bảng được cách đọc kèo bóng đá nhưng giữ quyền truy cập vào nó dưới dạng bảng theo đúng nghĩa của nó:

Thay đổi bảng đo_Y2006M02 Không đo lường kế thừa;

Để thêm cách đọc kèo bóng đá mới để xử lý dữ liệu mới, tạo một cách đọc kèo bóng đá trống giống như các cách đọc kèo bóng đá ban đầu đã được tạo ở trên:

Tạo bảng đo_Y2008M02 (

Ngoài ra, người ta có thể muốn tạo bảng mới bên ngoài cấu trúc cách đọc kèo bóng đá và biến nó thành một cách đọc kèo bóng đá sau khi dữ liệu được tải, kiểm tra và chuyển đổi.

Tạo bảng đo_Y2008M02

5.10.3.3. Hãy cẩn thận

Các cảnh báo sau đây áp dụng cho các bảng được cách đọc kèo bóng đá được thực hiện bằng cách sử dụng kế thừa:

  • Không có cách tự động để xác minh rằng tất cảKiểm traCác ràng buộc là loại trừ lẫn nhau. Việc tạo mã tạo cách đọc kèo bóng đá là an toàn hơn và sửa đổi các đối tượng liên quan hơn là viết mỗi cái bằng tay.

  • Các sơ đồ được hiển thị ở đây giả sử rằng cột khóa cách đọc kèo bóng đá của một hàng không bao giờ thay đổi, hoặc ít nhất là không thay đổi đủ để yêu cầu nó chuyển sang cách đọc kèo bóng đá khác. MỘTCập nhậtĐiều đó cố gắng làm điều đó sẽ thất bại vìKiểm traràng buộc. Nếu bạn cần xử lý các trường hợp như vậy, bạn có thể đặt các kích hoạt cập nhật phù hợp trên các bảng cách đọc kèo bóng đá, nhưng nó làm cho việc quản lý cấu trúc phức tạp hơn nhiều.

  • Nếu bạn đang sử dụng thủ côngNút húthoặcPhân tíchCác lệnh, đừng quên rằng bạn cần phải chạy chúng trên mỗi cách đọc kèo bóng đá. Một lệnh như:

    Phân tích đo lường;

    Sẽ chỉ xử lý bảng chính.

  • ChènCâu nói vớitrên xung độtĐiều khoản không có khả năng hoạt động như mong đợi, nhưtrên xung độtHành động chỉ được thực hiện trong trường hợp vi phạm duy nhất trên quan hệ mục tiêu được chỉ định, không phải quan hệ con cái của nó.

  • Trình kích hoạt hoặc quy tắc sẽ cần thiết để định tuyến các hàng đến cách đọc kèo bóng đá mong muốn, trừ khi ứng dụng nhận thức rõ ràng về sơ đồ cách đọc kèo bóng đá. Trình kích hoạt có thể phức tạp để viết và sẽ chậm hơn nhiều so với định tuyến Tuple được thực hiện nội bộ bằng cách cách đọc kèo bóng đá khai báo.

5.10.4. cách đọc kèo bóng đá và loại trừ ràng buộc

Loại trừ ràng buộclà một kỹ thuật tối ưu hóa truy vấn giúp cải thiện hiệu suất cho các bảng được cách đọc kèo bóng đá được xác định theo kiểu được mô tả ở trên (cả hai bảng được cách đọc kèo bóng đá và các bảng được thực hiện bằng cách sử dụng kế thừa). Ví dụ:

Đặt ràng buộc_exclusion = on;

Không loại trừ ràng buộc, truy vấn trên sẽ quét từng cách đọc kèo bóng đá củaĐo lườngBảng. Với sự loại trừ ràng buộc được bật, người lập kế hoạch sẽ kiểm tra các ràng buộc của từng cách đọc kèo bóng đá và cố gắng chứng minh rằng cách đọc kèo bóng đá không cần phải được quét vì nó không thể chứa bất kỳ hàng nào gặp gỡ truy vấnWHEREmệnh đề. Khi người lập kế hoạch có thể chứng minh điều này, nó sẽ loại trừ cách đọc kèo bóng đá khỏi kế hoạch truy vấn.

Bạn có thể sử dụngGiải thíchLệnh hiển thị sự khác biệt giữa một kế hoạch vớitrên và một kế hoạch với nó. Một kế hoạch không được tối ưu hóa điển hình cho loại thiết lập bảng này là:

Đặt ràng buộc_exclusion = TẮT;

Một số hoặc tất cả các cách đọc kèo bóng đá có thể sử dụng quét chỉ mục thay vì quét tuần tự bảng đầy đủ, nhưng điểm ở đây là không cần phải quét các cách đọc kèo bóng đá cũ hơn để trả lời truy vấn này. Khi chúng tôi kích hoạt loại trừ ràng buộc, chúng tôi sẽ nhận được một kế hoạch rẻ hơn đáng kể sẽ cung cấp cùng một câu trả lời:

Đặt ràng buộc_exclusion = on;

Lưu ý rằng loại trừ ràng buộc chỉ được điều khiển bởiKiểm traCác ràng buộc, không phải bởi sự hiện diện của các chỉ mục. Do đó, không cần thiết phải xác định các chỉ mục trên các cột chính.

cài đặt mặc định (và được đề xuất) củaurdaint_exclusionthực sự cũng khôngtrênNorTẮT, nhưng một cài đặt trung gian được gọi làcách đọc kèo bóng đá, khiến kỹ thuật này chỉ được áp dụng cho các truy vấn có khả năng làm việc trên các bảng được cách đọc kèo bóng đá. ThetrênCài đặt khiến người lập kế hoạch kiểm traKiểm traCác ràng buộc trong tất cả các truy vấn, ngay cả những điều đơn giản không có khả năng được hưởng lợi.

Các cảnh báo sau đây áp dụng cho loại trừ ràng buộc, được sử dụng bởi cả hai bảng kế thừa và cách đọc kèo bóng đá:

  • Loại trừ ràng buộc chỉ hoạt động khi truy vấnWHEREmệnh đề chứa các hằng số (hoặc tham số được cung cấp bên ngoài). Ví dụ: so sánh với chức năng không thể truy xuất nhưcurrent_timestampKhông thể được tối ưu hóa, vì người lập kế hoạch không thể biết cách đọc kèo bóng đá nào giá trị chức năng có thể rơi vào thời gian chạy.

  • Giữ cho các ràng buộc cách đọc kèo bóng đá đơn giản, nếu không người lập kế hoạch có thể không thể chứng minh rằng các cách đọc kèo bóng đá không cần phải truy cập. Sử dụng các điều kiện bình đẳng đơn giản để cách đọc kèo bóng đá danh sách hoặc kiểm tra phạm vi đơn giản để cách đọc kèo bóng đá phạm vi, như được minh họa trong các ví dụ trước.

  • Tất cả các ràng buộc trên tất cả các cách đọc kèo bóng đá của bảng chính được kiểm tra trong quá trình loại trừ ràng buộc, do đó số lượng lớn các cách đọc kèo bóng đá có khả năng làm tăng đáng kể thời gian lập kế hoạch truy vấn. cách đọc kèo bóng đá bằng cách sử dụng các kỹ thuật này sẽ hoạt động tốt với khoảng một trăm cách đọc kèo bóng đá;

5.10.5. cách đọc kèo bóng đá khai báo thực tiễn tốt nhất

Việc lựa chọn cách cách đọc kèo bóng đá bảng nên được thực hiện cẩn thận vì hiệu suất của lập kế hoạch và thực hiện truy vấn có thể bị ảnh hưởng tiêu cực bởi thiết kế kém.

Một trong những quyết định thiết kế quan trọng nhất sẽ là cột hoặc cột mà bạn cách đọc kèo bóng đá dữ liệu của mình. Thường thì lựa chọn tốt nhất sẽ là cách đọc kèo bóng đá theo cột hoặc tập hợp các cột thường xuất hiện nhất trongWHEREĐiều khoản của các truy vấn được thực thi trên bảng được cách đọc kèo bóng đá.WHERECác mục mệnh đề khớp và tương thích với khóa cách đọc kèo bóng đá có thể được sử dụng để cắt tỉa các cách đọc kèo bóng đá không cần thiết. Loại bỏ dữ liệu không mong muốn cũng là một yếu tố cần xem xét khi lập kế hoạch chiến lược cách đọc kèo bóng đá của bạn.

Chọn số lượng cách đọc kèo bóng đá mục tiêu mà bảng nên được chia thành cũng là một quyết định quan trọng để đưa ra. Không có đủ cách đọc kèo bóng đá có thể có nghĩa là các chỉ mục vẫn còn quá lớn và địa phương dữ liệu vẫn còn kém, điều này có thể dẫn đến tỷ lệ đạt được bộ đệm thấp.phạm vivà chọn một số cách đọc kèo bóng đá hợp lý, mỗi cách đọc kèo bóng đá có chứa một số lượng khách hàng cố định, thay vì cố gắng cách đọc kèo bóng đá theoListVà hy vọng rằng số lượng khách hàng không tăng vượt quá mức thực tế để cách đọc kèo bóng đá dữ liệu theo.

cách đọc kèo bóng đá phụ có thể hữu ích để phân chia thêm các cách đọc kèo bóng đá dự kiến ​​sẽ trở nên lớn hơn các cách đọc kèo bóng đá khác, mặc dù cách đọc kèo bóng đá phụ quá mức có thể dễ dàng dẫn đến số lượng lớn các cách đọc kèo bóng đá và có thể gây ra các vấn đề tương tự được đề cập trong đoạn trước.

Điều quan trọng là phải xem xét chi phí cách đọc kèo bóng đá trong quá trình lập kế hoạch và thực hiện truy vấn. Người lập kế hoạch truy vấn thường có thể xử lý các phân cấp cách đọc kèo bóng đá với tối đa vài trăm cách đọc kèo bóng đá.Cập nhậtXóalệnh. Một lý do khác để lo ngại về việc có một số lượng lớn các cách đọc kèo bóng đá là mức tiêu thụ bộ nhớ của máy chủ có thể tăng đáng kể trong một khoảng thời gian, đặc biệt nếu nhiều phiên chạm vào số lượng lớn các cách đọc kèo bóng đá.

Với khối lượng công việc loại kho dữ liệu, có thể có ý nghĩa khi sử dụng số lượng cách đọc kèo bóng đá lớn hơn so vớiOLTPLoại khối lượng công việc. Nói chung, trong kho dữ liệu, thời gian lập kế hoạch truy vấn không phải là mối quan tâm vì phần lớn thời gian xử lý được dành trong quá trình thực hiện truy vấn.