Freigeben über


Datenmodell und Speicherung von Aktivitäten

Aktivitätstabellen (ehemals Entitäten) wie E-Mail, Telefonanruf und Termin werden in der Microsoft Dataverse-Datenbank gespeichert mit einem anspruchsvolleren Datenmodell im Vergleich zu Standardtabellen, die normalerweise in einer Datenbanktabelle gespeichert werden. Dieser Artikel hilft Ihnen, das Aktivitätendatenmodell und seine Auswirkungen auf die Speicherkapazität zu verstehen. Weitere Einzelheiten zur Verwendung von Aktivitäten finden Sie unter Aktivitätstabellen.

Aktivitäten, die Datenbanktabellen zugrunde liegen

Aktivitätszeilen werden in der Dataverse-Datenbank über mehrere zugrunde liegende Tabellen gespeichert. Jede Aktivitätstabelle speichert entsprechende Datenzeilen in einer Basistabelle (ActivityPointerBase) und einer Erweiterungstabelle, die jedem spezifischen Aktivitätstyp zugeordnet ist (EmailBase, TaskBase, AppointmentBase usw.).

ActivityPointerBase

Diese Tabelle ist die Basistabelle für jede Aktivität im System. Die Erstellung einer Aktivität wie einer E-Mail, eines Telefonanrufs, eines Termins oder einer benutzerdefinierten Aktivität erstellt eine entsprechende Zeile in dieser Tabelle. Da diese Tabelle eine Zeile für jede Aktivität enthält, wird erwartet, dass diese Tabelle viele Zeilen enthalten kann.

Diese Tabelle enthält alle Standardaktivitätsspalten wie Betreff, Beschreibung, Besitzer, Betreffend, Status und viele mehr. Eine vollständige Liste der Spalten in dieser Tabelle finden Sie unter activitypointer EntityType. Da jede dieser Spalten in dieser Basisaktivitätstabelle enthalten ist und es eine Zeile für jede Aktivität gibt, ist dies oft einer der größten Verbraucher von Datenkapazität. Die Beschreibungsspalte ist dieselbe Spalte, die zum Speichern des E-Mail-Texts für eine E-Mail-Aktivität verwendet wird. Da ein E-Mail-Text eine große Menge Text enthalten kann, können große E-Mails zum Wachstum der von dieser Tabelle verbrauchten Datenkapazität beitragen.

Wenn Sie auf eine Ansicht wie „Meine Aktivitäten“ oder „Alle Aktivitäten“ zugreifen, werden die Daten aus der Tabelle „ActivityPointerBase“ abgerufen, sodass Sie eine einzelne Ansicht der Aktivitäten über mehrere Aktivitätstypen hinweg sehen können.

Jede Aktivität im System kann unter Verwendung des spezifischen Aktivitätsschemanamens abgerufen werden und ist auch unter Verwendung des activitypointer-Schemas abrufbar. Diese Funktionalität ist nützlich, wenn mehrere Aktivitäten unterschiedlicher Aktivitätstypen abgerufen werden.

ActivityPartyBase

Diese Tabelle enthält die Parteiinformationen für jede Aktivität. Jede Aktivitätspartei stellt eine Person oder Gruppe dar, die einer Aktivität zugeordnet ist. Beispiel: Angenommen, Sie haben eine Terminaktivität erstellt, die einen Organisator, einen Besitzer, zwei erforderliche Teilnehmer, einen optionalen Teilnehmer und ein Bezug-Objekt hat. In dieser Tabelle wären sechs entsprechende Zeilen gespeichert. Ein weiteres Beispiel für Aktivitätsparteien sind alle Personen in einer E-Mail-Aktivität in den Zeilen „Von“, „An“ und „Cc“.

Wenn eine Zeile, z. B. ein Kontakt, gelöscht wird, werden alle Aktivitätsparteizeilen, die auf den Kontakt verweisen, nicht automatisch gelöscht. Dies geschieht absichtlich, sodass die ursprünglichen Teilnehmerdaten beibehalten werden. Wenn Sie eine Aktivitätszeile wie eine E-Mail löschen, werden alle dieser Aktivität zugeordneten Aktivitätsparteienzeilen gelöscht.

Mehr Informationen: ActivityParty-Tabelle und activityparty EntityType.

ActivityMimeAttachment

Diese Tabelle enthält die Daten, um einen Anhang mit einer Aktivitätszeile zu verknüpfen.

Weitere Informationen: activitymimeattachment EntityType

EmailSearchBase (interne Verwendung)

Diese Tabelle wird für die Auflösung von E-Mail-Adressen verwendet. Sie dient nur der internen Verwendung und enthält Zeilen für jede E-Mail-Adresse im System, die einer formatierten Spalte für E-Mail-Adressen zugeordnet ist.

EmailHashBase (interne Verwendung)

Diese Tabelle wird verwendet für intelligente Übereinstimmung und enthält Hashes, die für jede E-Mail-Nachricht im System generiert wurden.

Mehr Informationen: Filterung und Korrelation von E-Mail-Nachrichten verwenden und EmailHashBase-Tabellenauffüllung für intelligente Übereinstimmung deaktivieren

Unterschied zwischen Schema und Speicher

Es gibt einen Unterschied zwischen dem Schema, das für einzelne Aktivitätstabellen verfügbar gemacht wird, und dem zugrunde liegenden Speicher. Beispiel: Wenn Sie sich auf das E-Mail-Entitätsschema beziehen, das über das SDK zugänglich ist, sind alle Tabellenspalten verfügbar und werden aus verschiedenen zugrunde liegenden Tabellen (Basistabelle, Erweiterungstabelle, Aktivitätserweiterungstabelle) angezeigt. Die meisten dieser Spalten werden jedoch in der Basistabelle (ActivityPointerBase) gespeichert, und nur benutzerdefinierte Spalten, falls vorhanden, werden in der EmailBase-Tabelle gespeichert.

Häufig gestellte Fragen

ActivityPointerBase

Warum hat ActivityPointerBase so viele Zeilen?

Weitere Einzelheiten finden Sie in der Basistabellendefinition oben. Eine Zeile für jede Aktivität im System.

Warum verbraucht ActivityPointerBase so viel Speicherplatz?

Eine mögliche Ursache sind viele Zeilen, die zur Gesamttabellengröße beitragen. Eine weitere mögliche Ursache ist die Textlänge in der Beschreibungsspalte. Dies ist dieselbe Beschreibungsspalte, die für jede Aktivität verwendet wird, z. B. den Text einer E-Mail-Aktivität oder die Beschreibung einer Terminaktivität.

Wie kann ich die Nutzung der ActivityPointerBase-Tabelle reduzieren?

ActivityPointerBase enthält Daten, die gespeichert wurden, als Benutzer Aktivitätszeilen wie E-Mails, Telefonanrufe, Aufgaben und Termine erstellten. Wenn Benutzer mehr Aktivitäten erstellen, wächst die Tabelle. Die Tabelle enthält von Benutzern gespeicherte Daten und keine internen Nutzungsdaten. Sie können den für diese Tabelle belegten Platz reduzieren, indem Sie alle alten Aktivitäten löschen, die nicht mehr benötigt werden.

ActivityPartyBase

Warum hat ActivityPartyBase so viele Zeilen?

Für jede Aktivitätsteilnahme gibt es eine Zeile. Es ist einfach, viele Zeilen in dieser Tabelle zu haben, aber der von diesen einzelnen Zeilen belegte Platz ist minimal.

Weitere Fragen

Warum verbraucht eine Aktivitätserweiterungstabelle so viel Speicherplatz?

Eine Erweiterungstabelle erweitert die Basis-Aktivitätstabelle (ActivityPointerBase) um eine bestimmte Aktivitätstabelle wie „Task“ und wird zum Speichern der Daten für benutzerdefinierte Spalten verwendet. Die Task-Tabelle speichert Daten für die Standardattribute in der ActivityPointerBase-Tabelle in der Datenbank. Wenn Sie der Task-Tabelle benutzerdefinierte Attribute hinzufügen, werden diese in der TaskBase-Tabelle in der Datenbank gespeichert. Eine Erweiterungstabelle enthält nur dann Zeilen, wenn für die jeweilige Aktivität ein benutzerdefiniertes Attribut definiert ist. Es kann Fälle geben, in denen ein Textfeld, das eine große Menge Text enthält, als benutzerdefiniertes Aktivitätsattribut definiert ist und eine hohe Speichernutzung verursachen kann. Überprüfen Sie die definierten benutzerdefinierten Attribute und den Inhalt.

Wo wird der Text (Beschreibung) einer E-Mail gespeichert?

Der E-Mail-Text wird in der Beschreibungsspalte der ActivityPointerBase-Tabelle gespeichert. Dieses Attribut kann von beiden Schemas abgerufen werden: email und activitypointerbase. Die Daten werden jedoch nicht dupliziert. Es wird nur nach Bedarf an zwei Stellen angezeigt.

Siehe auch

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).