Εφαρμογή της ρύθμισης υιοθέτησης ακεραιότητας αναφορών στο Power BI DesktopApply the Assume Referential Integrity setting in Power BI Desktop

Κατά τη σύνδεση με μια προέλευση δεδομένων μέσω του DirectQuery, μπορείτε να χρησιμοποιήσετε την επιλογή Υιοθέτηση ακεραιότητας αναφορών για να ενεργοποιήσετε την εκτέλεση πιο αποτελεσματικών ερωτημάτων σε σχέση με την προέλευση δεδομένων.When connecting to a data source using DirectQuery, you can use the Assume Referential Integrity selection to enable running more efficient queries against your data source. Αυτή η δυνατότητα έχει μερικές απαιτήσεις για τα υποκείμενα δεδομένα και είναι διαθέσιμη μόνο όταν χρησιμοποιείτε το DirectQuery.This feature has a few requirements of the underlying data, and it is only available when using DirectQuery.

Η ρύθμιση Υιοθέτηση ακεραιότητας αναφορών ενεργοποιεί τη χρήση προτάσεων ΕΣΩΤΕΡΙΚΟΥ ΣΥΝΔΕΣΜΟΥ αντί ΕΞΩΤΕΡΙΚΟΎ ΣΥΝΔΈΣΜΟΥ από τα ερωτήματα στην προέλευση δεδομένων, τα οποία βελτιώνουν την αποτελεσματικότητα του ερωτήματος.Setting Assume referential integrity enables queries on the data source to use INNER JOIN statements rather than OUTER JOIN, which improves query efficiency.

Στιγμιότυπο οθόνης ενός παραθύρου διαλόγου "Επεξεργασία σχέσης" για να επιλέξετε "Υιοθέτηση ακεραιότητας αναφορών".

Απαιτήσεις για τη χρήση της δυνατότητας "Υιοθέτηση ακεραιότητας αναφορών"Requirements for using Assume referential integrity

Αυτή είναι μια ρύθμιση για προχωρημένους και ενεργοποιείται μόνο κατά τη σύνδεση δεδομένων με χρήση του DirectQuery.This is an advanced setting, and is only enabled when connecting to data using DirectQuery. Οι ακόλουθες απαιτήσεις είναι απαραίτητες για να λειτουργήσει σωστά η Υιοθέτηση ακεραιότητας αναφορών:The following requirements are necessary for Assume referential integrity to work properly:

  • Τα δεδομένα στη στήλη Από της σχέσης δεν είναι ποτέ Null ή κενάData in the From column in the relationship is never Null or blank
  • Για κάθε τιμή στη στήλη Από, υπάρχει μια αντίστοιχη τιμή στη στήλη ΠροςFor each value in the From column, there is a corresponding value in the To column

Σε αυτό το περιβάλλον, η στήλη Από είναι το στοιχείο Πολλά μιας σχέσης ένα προς πολλά ή είναι η στήλη του πρώτου πίνακα σε μια σχέση ένα προς ένα.In this context, the From column is the Many in a One-to-Many relationship, or it is the column in the first table in a One-to-One relationship.

Παράδειγμα χρήσης της δυνατότητας "Υιοθέτηση ακεραιότητας αναφορών"Example of using Assume referential integrity

Το παρακάτω παράδειγμα δείχνει τον τρόπο με τον οποίο συμπεριφέρεται η Υιοθέτηση ακεραιότητας αναφορών όταν χρησιμοποιείται σε συνδέσεις δεδομένων.The following example demonstrates how Assume referential integrity behaves when used in data connections. Το παράδειγμα συνδέεται με μια προέλευση δεδομένων που περιέχει έναν πίνακα Orders, έναν πίνακα Products και έναν πίνακα Depots.The example connects to a data source that includes an Orders table, a Products table, and a Depots table.

  1. Στην ακόλουθη εικόνα που δείχνει τον πίνακα Orders και τον πίνακα Products, σημειώστε ότι υπάρχει ακεραιότητα αναφορών μεταξύ των πεδίων Orders[ProductID] και Products[ProductID] .In the following image that shows the Orders table and the Products table, note that referential integrity exists between Orders[ProductID] and Products[ProductID]. Η στήλη [ProductID] στον πίνακα Orders δεν είναι ποτέ Null και κάθε τιμή εμφανίζεται επίσης στον πίνακα Products.The [ProductID] column in the Orders table is never Null, and every value also appears in the Products table. Ως εκ τούτου, θα πρέπει να οριστεί η Υιοθέτηση ακεραιότητας αναφορών για να λαμβάνετε πιο αποτελεσματικά ερωτήματα (η χρήση αυτής της ρύθμισης δεν αλλάζει τις τιμές που εμφανίζονται στις απεικονίσεις).As such, Assume Referential Integrity should be set to get more efficient queries (using this setting does not change the values shown in visuals).

    Στιγμιότυπο οθόνης του πίνακα "Παραγγελίες" και του πίνακα "Προϊόντα".

  2. Στην επόμενη εικόνα, παρατηρήστε ότι δεν υπάρχει ακεραιότητα αναφορών μεταξύ των στοιχείων Orders[DepotID] και Depots[DepotID] , επειδή το στοιχείο DepotID είναι Null για ορισμένα στοιχεία Orders.In the next image, notice that no referential integrity exists between Orders[DepotID] and Depots[DepotID], because the DepotID is Null for some Orders. Ως εκ τούτου, η Υιοθέτηση ακεραιότητας αναφορών δεν πρέπει να οριστεί.As such, Assume Referential Integrity should not be set.

    Στιγμιότυπο οθόνης του πίνακα "Παραγγελίες" και του πίνακα "Αποθήκες".

  3. Τέλος, δεν υπάρχει ακεραιότητα αναφορών μεταξύ των στοιχείων Orders[CustomerID] και Customers[CustID] στους παρακάτω πίνακες. Το στοιχείο CustomerID περιέχει ορισμένες τιμές (σε αυτή την περίπτωση, CustX) που δεν υπάρχουν στον πίνακα Customers.Finally, no referential integrity exists between Orders[CustomerID] and Customers[CustID] in the following tables; the CustomerID contains some values (in this case, CustX) that do not exist in the Customers table. Ως εκ τούτου, η Υιοθέτηση ακεραιότητας αναφορών δεν πρέπει να οριστεί.As such, Assume Referential Integrity should not be set.

    Στιγμιότυπο οθόνης του πίνακα "Παραγγελίες" και του πίνακα "Προϊόντα".

Ορισμός της δυνατότητας "Υιοθέτηση ακεραιότητας αναφορών"Setting Assume referential integrity

Για να ενεργοποιήσετε αυτή τη δυνατότητα, επιλέξτε το πλαίσιο ελέγχου δίπλα στο στοιχείο Υιοθέτηση ακεραιότητας αναφορών, όπως φαίνεται στην παρακάτω εικόνα.To enable this feature, select the checkbox next to Assume Referential Integrity as shown in the following image.

Στιγμιότυπο οθόνης ενός παραθύρου διαλόγου "Επεξεργασία σχέσης" που σας επιτρέπει να επιλέξετε το στοιχείο "Υιοθέτηση ακεραιότητας αναφορών".

Όταν το επιλέξετε, η ρύθμιση επικυρώνεται έναντι των δεδομένων, για να εξασφαλιστεί ότι δεν υπάρχουν Null γραμμές ή γραμμές που δεν συμφωνούν.When selected, the setting is validated against the data to ensure there are no Null or mismatched rows. Ωστόσο, σε περιπτώσεις με πολύ μεγάλο αριθμό τιμών, η επικύρωση δεν αποτελεί εγγύηση ότι δεν υπάρχουν ζητήματα ακεραιότητας αναφορών.However, for cases with a very large number of values, the validation is not a guarantee that there are no referential integrity issues.

Επιπλέον, η επικύρωση πραγματοποιείται κατά την επεξεργασία της σχέσης και δεν αντικατοπτρίζει τυχόν επόμενες αλλαγές στα δεδομένα.In addition, the validation occurs at the time of editing the relationship, and does not reflect any subsequent changes to the data.

Τι θα συμβεί εάν δεν ρυθμίσετε σωστά την "Υιοθέτηση ακεραιότητας αναφορών";What happens if you incorrectly set Assume referential integrity?

Εάν ορίσετε την Υιοθέτηση ακεραιότητας αναφορών όταν υπάρχουν προβλήματα ακεραιότητας αναφορών στα δεδομένα, αυτό δεν θα προκαλέσει σφάλματα.If you set Assume Referential Integrity when there are referential integrity issues in the data, this will not result in errors. Ωστόσο, θα έχει ως αποτέλεσμα εμφανείς ασυνέπειες στα δεδομένα.However, it will result in apparent inconsistencies in the data. Για παράδειγμα, στην περίπτωση της σχέσης με τον πίνακα Depots που περιγράφεται παραπάνω, θα είχε το εξής αποτέλεσμα:For example, in the case of the relationship to the Depots table described above, it would result in the following:

  • Μια απεικόνιση που δείχνει το σύνολο του στοιχείου Order Qty θα εμφάνιζε μια τιμή 40A visual showing the total Order Qty would show a value of 40
  • Μια απεικόνιση που δείχνει το σύνολο του στοιχείου Order Qty κατά Depot City θα εμφάνιζε μια συνολική τιμή μόλις 30, επειδή δεν θα περιελάμβανε το στοιχείο Order ID 1, όπου το DepotID έχει τιμή Null.A visual showing the total Order Qty by Depot City would show a total value of only 30, because it would not include Order ID 1, where DepotID is Null.

Επόμενα βήματαNext steps

Μάθετε περισσότερα για το DirectQueryLearn more about DirectQuery

Λήψη περισσότερων πληροφοριών σχετικά με τις σχέσεις στο Power BIGet more information about Relationships in Power BI

Για να μάθετε περισσότερα, ανατρέξτε στο θέμα Προβολή σχέσης στο Power BI Desktop.Learn more about Relationship View in Power BI Desktop.