A Hivatkozási integritás feltételezése beállítás alkalmazása a Power BI DesktopbanApply the Assume Referential Integrity setting in Power BI Desktop

Amikor a DirectQuery használatával csatlakozik egy adatforráshoz, a Hivatkozási integritás feltételezése lehetőséggel engedélyezheti a hatékonyabb lekérdezések futtatását az adatforráson.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. Ez a funkció a felállít néhány követelményt a mögöttes adatokkal szemben, és csak a DirectQuery használatakor érhető el.This feature has a few requirements of the underlying data, and it is only available when using DirectQuery.

A Hivatkozási integritás feltételezése beállítás lehetővé teszi, hogy az adatforráson a lekérdezések INNER JOIN utasításokat használjanak az OUTER JOIN helyett, ami javítja a lekérdezés hatékonyságát.Setting Assume referential integrity enables queries on the data source to use INNER JOIN statements rather than OUTER JOIN, which improves query efficiency.

A Hivatkozási integritás feltételezésének beállítására használt Kapcsolat szerkesztése párbeszédpanel képernyőképe.

A hivatkozási integritás feltételezése használatának követelményeiRequirements for using Assume referential integrity

Ez egy speciális beállítás, és csak akkor engedélyezett, ha a DirectQuery használatával csatlakozik az adatokhoz.This is an advanced setting, and is only enabled when connecting to data using DirectQuery. A következő utasításokra van szükség a Hivatkozási integritás feltételezése funkció megfelelő működéséhez:The following requirements are necessary for Assume referential integrity to work properly:

  • A Kapcsolat Forrás oszlopában lévő adatok soha nem Null értékűek vagy üresekData in the From column in the relationship is never Null or blank
  • A Forrás oszlop minden értékéhez található megfelelő érték a Cél oszlopbanFor each value in the From column, there is a corresponding value in the To column

Ebben a környezetben a Forrás oszlop az Egy-a-többhöz kapcsolat Több oldala, vagy pedig az Egy-az-egyhez kapcsolatban lévő első táblázat.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.

A hivatkozási integritás feltételezése használatának példájaExample of using Assume referential integrity

A következő példa bemutatja, hogyan viselkedik a Hivatkozási integritás feltételezése az adatkapcsolatokban.The following example demonstrates how Assume referential integrity behaves when used in data connections. A példa egy olyan adatforráshoz csatlakozik, amelyben egy Orders (Megrendelések) táblázat, egy Products (Termékek) táblázat és egy Depots (Raktárak) táblázat található van.The example connects to a data source that includes an Orders table, a Products table, and a Depots table.

  1. Az Orders (Megrendelések) táblázat és a Products (Termékek) táblázat következő képén figyelje meg, hogy hivatkozási integritás áll fenn az Orders[ProductID] (Megrendelések[Termékazonosító]) és a Products[ProductID] (Termékek[Termékazonosító]) között.In the following image that shows the Orders table and the Products table, note that referential integrity exists between Orders[ProductID] and Products[ProductID]. Az Orders (Megrendelések) táblázat [ProductID] ([Termékazonosító]) oszlopa soha nem Null értékű, és minden érték megjelenik a Products (Termékek) táblázatban is.The [ProductID] column in the Orders table is never Null, and every value also appears in the Products table. Így érdemes beállítani a Hivatkozási integritás feltételezése funkciót, hogy hatékonyabb értékeket szerezhessen be (a beállítás nem módosítja a vizualizációkban látható értékeket).As such, Assume Referential Integrity should be set to get more efficient queries (using this setting does not change the values shown in visuals).

    Az Orders és a Products táblázat képernyőképe.

  2. A következő képen figyelje meg, hogy nem létezik hivatkozási integritás az Orders[DepotID] (Megrendelések[Raktárazonosító]) és a Depots[DepotID] (Raktárak[Raktárazonosító]) között, mert a DepotID ([Raktárazonosító]) egyes Orders (Megrendelések) mezők esetén Null értékű.In the next image, notice that no referential integrity exists between Orders[DepotID] and Depots[DepotID], because the DepotID is Null for some Orders. Így a Hivatkozási integritás feltételezése funkció nem állítható be.As such, Assume Referential Integrity should not be set.

    Az Orders tábla és a Depots tábla képernyőképe.

  3. Végül, nem áll fenn hivatkozási integritás az Orders[CustomerID] (Megrendelések[Ügyfélazonosító]) és a Customers[CustID] (Ügyfelek[Ügyfélazonosító]) között a következő táblázatokban; a CustomerID ([Ügyfélazonosító]) olyan értéket is tartalmaz (ebben az esetben CustX), amely nem létezik a Customers (Ügyfelek) táblázatban.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. Így a Hivatkozási integritás feltételezése funkció nem állítható be.As such, Assume Referential Integrity should not be set.

    Az Orders és a Customers táblázat képernyőképe.

Hivatkozási integritás feltételezésének beállításaSetting Assume referential integrity

A funkció engedélyezéséhez jelölje be a Hivatkozási integritás feltételezése melletti jelölőnégyzetet a következő képen láthatóak szerint.To enable this feature, select the checkbox next to Assume Referential Integrity as shown in the following image.

A Hivatkozási integritás feltételezésének beállítására használható Kapcsolat szerkesztése párbeszédpanel képernyőképe.

Amikor be van jelölve, a rendszer ellenőrzi a beállítást az adatokban, hogy ne legyenek Null értékű vagy nem egyező sorok.When selected, the setting is validated against the data to ensure there are no Null or mismatched rows. Azonban azokban az esetekben, ahol nagyon sok érték szerepel, az ellenőrzés nem garantálja a hivatkozási integritási problémák teljes kiküszöbölését.However, for cases with a very large number of values, the validation is not a guarantee that there are no referential integrity issues.

Ezenkívül az ellenőrzés a kapcsolat szerkesztésekor történik, és nem tükrözi az adatok későbbi módosításait.In addition, the validation occurs at the time of editing the relationship, and does not reflect any subsequent changes to the data.

Mi történik, ha helytelenül állítja be a Hivatkozási integritás feltételezése funkciót?What happens if you incorrectly set Assume referential integrity?

Ha a Hivatkozási integritás feltételezése funkciót úgy állítja be, hogy hivatkozási integritási hibák találhatók az adatokban, az nem eredményez hibákat.If you set Assume Referential Integrity when there are referential integrity issues in the data, this will not result in errors. Azonban ez az adatokban látszólagos ellentmondásokat eredményez.However, it will result in apparent inconsistencies in the data. A fent leírt Depots (Raktárak) táblázattal való kapcsolat például a következőt eredményezné:For example, in the case of the relationship to the Depots table described above, it would result in the following:

  • A teljes Order Qty (Megrendelt mennyiség) értéket megjelenítő vizualizáció 40 értéket mutatnaA visual showing the total Order Qty would show a value of 40
  • A teljes Order Qty by Depot City (Megrendelt mennyiség a raktár városa alapján) értéket megjelenítő vizualizáció csak összesen 30 értéket jelenítene meg, mert nem tartalmazná az 1. rendelésazonosítót, ahol a DepotID (Raktárazonosító) értéke 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.

Következő lépésekNext steps

További információk a DirectQueryrőlLearn more about DirectQuery

További információk a kapcsolatokról a Power BI szolgáltatásbanGet more information about Relationships in Power BI

További információk a Kapcsolat nézetről a Power BI Desktopban.Learn more about Relationship View in Power BI Desktop.