{"id":55000350,"date":"2017-04-01T00:00:00","date_gmt":"2017-04-01T00:00:00","guid":{"rendered":"http:\/\/access-basics.de\/350"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Indizierung_in_der_Praxis","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html","title":{"rendered":"Indizierung in der Praxis"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/5b7ae9fae7784967b607d1c7825258a7\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p class='introduction'>In jedem Lehrbuch zur Datenbankentwicklung erfahren Sie, wie wichtig die Indizierung von Tabellenfeldern ist. Das betrifft jene, die in Vergleichs- und Filterabfragen eingeschlossen werden sollen und au&szlig;erdem die Felder, welche mehrere Tabellen &uuml;ber Indexfelder &uuml;ber Schl&uuml;ssel miteinander verkn&uuml;pfen. Ziel sind m&ouml;glichst performante Abfragen der Datenbank. Wir untersuchen hier, wie gro&szlig; der Performancezuwachs in der Praxis tats&auml;chlich ist.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1702_Indizes.zip<\/b>.<\/p>\n<h2>Wozu Indizierung<\/h2>\n<p>In einer relationalen Datenbank gilt die Indizierung von mindestens den Verkn&uuml;pfungsfeldern der Tabellen als das A und O. Sehen Sie sich dazu etwa das Datenmodell von Kunden und deren Bestellungen in Bild 1 an.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/Relayout.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/Relayout.png\" alt=\"Die vier Tabellen der Kundendatenbank sind alle miteinander &uuml;ber Schl&uuml;sselfelder verkn&uuml;pft\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Die vier Tabellen der Kundendatenbank sind alle miteinander &uuml;ber Schl&uuml;sselfelder verkn&uuml;pft<\/p>\n<p>Zu jedem Kunden, identifiziert durch dessen <b>ID<\/b>, kann es mehrere Bestellungen geben. Das Feld <b>KundeID<\/b> der Tabelle bezieht sich auf die <b>ID<\/b> des Kunden. Damit ist die Verbindung hergestellt. &Auml;hnlich verh&auml;lt es sich mit den Tabellen zu Bestelldetails und Artikeln. Hier stellt jeweils die <b>ID<\/b> den Prim&auml;rschl&uuml;ssel dar, auf den sich die Datens&auml;tze einer Detailtabelle &uuml;ber einen Schl&uuml;ssel <b>xxxID<\/b> verweisen. Die Bestelldetails machen das gleich zweimal. <\/p>\n<p>Die Indizierung der beteiligten Schl&uuml;sselfelder ist immer dann zwingend, wenn Sie eine automatische  <b>L&ouml;sch- und Aktualisierungsweitergabe<\/b> erreichen m&ouml;chten. Access erlaubt die Einstellung dieser Optionen f&uuml;r eine Beziehung nur dann, wenn bereits Indizes auf die Felder gesetzt wurden. Das L&ouml;schen eines Kunden zieht dann das L&ouml;schen auch aller seiner Bestellungen samt Bestelldetails nach sich. <\/p>\n<p>Doch oft ist <b>L&ouml;sch- oder Aktualisierungsweitergabe<\/b> gar nicht erforderlich oder erw&uuml;nscht. Auch dann wird aber zu einer Indizierung geraten, weil dies der Performance zugutekommt. Sollen etwa die Bestellungen eines Kunden mit der <b>ID 79<\/b> gefunden werden, so muss die Datenbank-Engine alle Datens&auml;tze der Tabelle <b>tblBestellungen<\/b> durchlaufen und die Werte von <b>KundeID<\/b> mit dieser Zahl vergleichen.<\/p>\n<p>Bei Millionen von Bestelldatens&auml;tzen dauert dies recht lange. Ist das Feld <b>KundeID<\/b> aber indiziert, so zieht Access dessen Index zurate. Dieser erlaubt eine viel schnellere Suche nach dem Wert <b>79<\/b>.<\/p>\n<p>Soll gar zu einem Kunden ermittelt werden, welche Artikel er bereits bestellte, so ist die Tabelle <b>tblBestelldetails<\/b> und deren Feld <b>ArtikelID<\/b> zu durchsuchen. Da dies nur &uuml;ber den Umweg der Zwischentabelle <b>tblBestellungen<\/b> geschehen kann, sind nun schon zwei Tabellen verschachtelt komplett zu durchsuchen. Das potenziert die Suchdauer.<\/p>\n<p>Der zweite Anwendungsfall f&uuml;r einen Index ist die unmittelbare Suche nach einem Feldinhalt. M&ouml;chten Sie etwa einen Kunden &uuml;ber dessen Namen finden, so muss Access wieder alle Datens&auml;tze scannen, um den oder die gew&uuml;nschten zu erkennen. Sind die Namensfelder mit Indizes versehen, so verwendet die Engine diese zur Suche, was abermals schneller abl&auml;uft.<\/p>\n<p>Soweit ist dies alles wahrscheinlich kein Fremdland f&uuml;r Sie!<\/p>\n<h2>Was ist ein Index<\/h2>\n<p>Nehmen wir an, Sie h&auml;tten ein E<b>-Book<\/b>, wie das vorliegende, in dem Sie ein bestimmtes Thema finden m&ouml;chten. Sie k&ouml;nnten nun eine Volltextsuche ansto&szlig;en, um nach einem Begriff zu suchen, und das dauert einige Zeit. Einfacher ist es da, sich eines Index im hinteren Teil des Buchs zu bedienen. Dort stehen zu jedem Begriff mehrere Seitenzahlen, &uuml;ber die Sie wahrscheinlich schneller zum Thema gelangen.<\/p>\n<p>&Auml;hnlich verh&auml;lt es sich mit den Indizes einer Datenbank. Mache System weisen tats&auml;chlich auch physisch einen Index auf. Zu einer <b>DBase<\/b>-Datenbank finden Sie etwa in der Regel neben der eigentlichen Datenbank (<b>dbf<\/b>) auch eine Datei mit der Endung <b>idx<\/b>, die lediglich die Indizes zu den Tabellen enth&auml;lt. Intern speichert auch die <b>Access Database Engine<\/b> die Indizes in gesonderten Speicherbereichen, nur dass dies in der Oberfl&auml;che von Access nicht offenkundig ist. Indizieren Sie ein Tabellenfeld, so zeigt sich dies ja lediglich in der Entwurfsansicht am Eigenschaftenfeld <b>Indiziert<\/b> oder im <b>Indizes<\/b>-Dialog (Ribbon <b>Entwurf | Indizes<\/b>), wie in Bild 2. Intern hat Access aber Indextabellen angelegt.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/IndizesDlg.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/IndizesDlg.png\" alt=\"Der Indizes-Dialog zur Tabelle tblKunden im Entwurf\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Der Indizes-Dialog zur Tabelle tblKunden im Entwurf<\/p>\n<p>Um zur Analogie eines Buches zur&uuml;ckzukehren: Suchen Sie etwa nach <b>L&ouml;schweitergabe<\/b>, so suchen Sie erstens im Inhaltsverzeichnis nach der ersten Seite des Index. Dort finden Sie die Begriffe alphanumerisch sortiert vor. Sie bl&auml;ttern zur Seite mit dem <b>L<\/b> als &Uuml;berschrift und finden in der Liste den Begriff <b>L&ouml;schweitergabe<\/b> mit drei angef&uuml;gten Seitenzahlen. Sie inspizieren diese Seiten nacheinander, um die gew&uuml;nschten Informationen zu erhalten. So &auml;hnlich arbeitet auch ein Index unter Access.<\/p>\n<p>Allerdings sind diese internen Indextabellen wesentlich komplexer und hochoptimiert, damit sich die Zahl der Spr&uuml;nge zu Eintr&auml;gen und Untereintr&auml;gen so gering h&auml;lt, wie m&ouml;glich. Die hier verwendeten Algorithmen sind eine Wissenschaft f&uuml;r sich und tragen Namen, wie B-Tree. Ein m&ouml;gliches vereinfachtes Modell bei aufsteigender Sortierung f&uuml;r einen Index:<\/p>\n<pre>K ->143\r\nL -> 188\r\nM -> 296\r\n188 -> n -> 2354\r\n188 -> o -> 2389\r\n2389 -> d -> 7843\r\n2389 -> e -> 7911<\/pre>\n<p>An der Speicherstelle <b>7911<\/b> sind wir immerhin schon bei <b>Loe<\/b> angekommen, den ersten drei Buchstaben von <b>L&ouml;schweitergabe<\/b>. Das Spiel setzt sich auf &auml;hnliche Weise fort, bis der Begriff vollst&auml;ndig ermittelt ist. Dort stehen dann ein oder mehrere Zeiger auf den Speicherplatz der Datens&auml;tze innerhalb der eigentlichen Tabelle.<\/p>\n<p>F&uuml;r den Begriff braucht es deshalb vielleicht nur 15 Spr&uuml;nge zwischen Speicherstellen, bis er im Index ermittelt ist. Dem entgegen st&uuml;nde ein Durchlaufen aller Tausender Datens&auml;tze einer Tabelle, wenn auf einen Index f&uuml;r das Feld verzichtet w&uuml;rde.<\/p>\n<p>Es ist also sehr plausibel, dass ein Index die Performance gewaltig erh&ouml;ht. Zumindest gilt das f&uuml;r das Lesen von Tabellen. Bei Anf&uuml;gen oder &Auml;ndern eines Datensatzes hingegen kommt es zu einem Nachteil: Nicht nur die Daten in der Tabelle selbst m&uuml;ssen ge&auml;ndert werden, sondern auch der Index! Sein ganzer Aufbau muss dem neuen Tabelleninhalt angepasst werden, damit die Suche effizient abl&auml;uft.<\/p>\n<p>Imgrunde m&uuml;ssten dazu s&auml;mtliche Speicherstellenverweise neu angeordnet werden, damit die Buchstaben oder Zahlen wieder korrekt sortiert in ihm vorliegen. In der Realit&auml;t passiert das so aber nicht, sondern nur in Teilen, weil es die Performance stark senken w&uuml;rde. Zu einer kompletten Neuordnung der Indizes kommt es erst dann, wenn Sie die Funktion <b>Komprimieren und Reparieren<\/b> f&uuml;r die Datenbank ansto&szlig;en!<\/p>\n<h2>Ein Test mit umfangreicher Tabelle<\/h2>\n<p>Um zu &uuml;berpr&uuml;fen, wie sich die Indizierung in der Praxis auswirkt, verwenden wir erst einmal eine Tabelle mit sehr vielen Datens&auml;tzen. Die Wahl fiel auf den <b>OpenThesaurus<\/b>, eine Tabelle, die synonyme Begriffe enth&auml;lt. Die Tabelle der Beispieldatenbank kommt aus dem gleichnamigen <b>Open Source<\/b>-Projekt und enth&auml;lt etwa 125.000 Datens&auml;tze. Bild 3 zeigt einen Ausschnitt der Tabelle.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/Openthesaurus_RT.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/Openthesaurus_RT.png\" alt=\"Die Tabelle OpenThesaurus in der Datenblattansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Die Tabelle OpenThesaurus in der Datenblattansicht<\/p>\n<p>In Bild 4 finden Sie den Entwurf der Tabelle. Die Begriffe stehen in der Spalte <b>Ausdruck<\/b>. Jene Begriffe, die synonym sein sollen, haben alle die gleiche <b>IDGroup<\/b>. Man muss also nur nach einem Begriff suchen, die <b>IDGroup<\/b> desselben auslesen, um &uuml;ber diese und eine Abfrage alle anderen Begriffe zu erhalten. Jeder Datensatz enth&auml;lt dar&uuml;ber hinaus eine eindeutige <b>ID<\/b>.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/Openthesaurus_DS.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/Openthesaurus_DS.png\" alt=\"Die Tabelle OpenThesaurus in der Entwurfsansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 4: Die Tabelle OpenThesaurus in der Entwurfsansicht<\/p>\n<p>Es ist naheliegend, dass eine Indizierung der Felder <b>Ausdruck<\/b> (f&uuml;r die Suche nach einem Begriff) und <b>IDGroup<\/b> (f&uuml;r das Auffinden synonymer Begriffe) hier Pflicht ist. Wir haben dies f&uuml;r die Tabelle so gemacht und jeweils in die Eigenschaft <b>Indiziert <\/b>im Entwurf die Auswahl <b>Ja (Duplikate m&ouml;glich) <\/b>eingestellt.<\/p>\n<p>Um die Performance mit einer Tabelle ohne Indizes zu vergleichen, enth&auml;lt die Beispieldatenbank zus&auml;tzlich die gleiche Tabelle ohne Indizierung, die den Namen <b>OpenThesaurus2<\/b> tr&auml;gt. Und eine weitere nennt sich <b>OpenThesaurus3<\/b>. Sie leitet sich von der zweiten ab, hat aber f&uuml;r das Feld <b>Ausdruck<\/b> keine <b>Unicode-Kompression<\/b> eingestellt. Access stellt diese von Haus aus auf <b>Ja<\/b> ein. Alle Zeichen von Textfeldern werden unter Access ja als <b>Unicode<\/b> abgespeichert, um auch Sonderzeichen und ausl&auml;ndische Schriftzeichen abbilden zu k&ouml;nnen.<\/p>\n<p>So ein <b>Unicode<\/b>-Zeichen nimmt zwei Bytes ein, was den Speicherbedarf gegen&uuml;ber <b>ANSI<\/b> (ein Byte) verdoppelt. Aus diesem Grund wurde die Kompression dieser Doppelzeichen eingef&uuml;hrt, die den physischen Speicherbedarf reduziert. Man sollte nun annehmen, dass die Komprimierung und Dekomprimierung der Texte zus&auml;tzliche Rechenzeit ben&ouml;tigt und die Performance senken k&ouml;nnte. Auch das &uuml;berpr&uuml;fen wir im Folgenden. Eine Testprozedur im Modul <b>mdlTest<\/b> hat nun prinzipiell den Code aus Listing 1. Die Zeit wird &uuml;ber die Variable <b>T<\/b> gemessen. Sie kommt aus der VBA-Funktion <b>Timer<\/b>, die die aktuelle Zeit in Sekunden als <b>Single<\/b>-Wert mit drei Nachkommastellen zur&uuml;ckgibt. Das Recordset wird auf die Tabelle <b>OpenThesaurus<\/b> ge&ouml;ffnet und als Filter bestimmt, dass nur die Datens&auml;tze mit dem <b>Ausdruck<\/b> <b>Akronym<\/b> ber&uuml;cksichtigt werden sollen. In einer Schleife wird das Ergebnis durchlaufen und jeweils in der Variablen <b>V<\/b> abgespeichert. Nach dem Schlie&szlig;en des Recordsets gibt die letzte Zeile der Prozedur die Differenz der aktuellen Zeit zu der eingangs in <b>T<\/b> gespeicherten im VBA-Direktfenster aus.<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>PerformanceRead()\r\n     <span style=\"color:blue;\">Dim <\/span>T<span style=\"color:blue;\"> As Single<\/span>\r\n     InitEngine\r\n     T = VBA.Timer\r\n     <span style=\"color:blue;\">Set<\/span> rs = CurrentDb.OpenRecordset(\"SELECT * From        OpenThesaurus WHERE Ausdruck='Akronym'\", dbOpenDynaset)\r\n     <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rs.EOF\r\n         V = rs!Ausdruck.Value\r\n         rs.Move<span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Loop<\/span>\r\n     rs.Close\r\n     <span style=\"color:blue;\">Debug.Print<\/span>  VBA.Timer - T\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p class='imagetext'>Listing 1: Performance-Test f&uuml;r den OpenThesaurus<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000350\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000350?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000350\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"22c77db969\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In jedem Lehrbuch zur Datenbankentwicklung erfahren Sie, wie wichtig die Indizierung von Tabellenfeldern ist. Das betrifft jene, die in Vergleichs- und Filterabfragen eingeschlossen werden sollen und au&szlig;erdem die Felder, welche mehrere Tabellen &uuml;ber Indexfelder &uuml;ber Schl&uuml;ssel miteinander verkn&uuml;pfen. Ziel sind m&ouml;glichst performante Abfragen der Datenbank. Wir untersuchen hier, wie gro&szlig; der Performancezuwachs in der Praxis tats&auml;chlich ist.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022017,662017,44000003,44000020],"tags":[],"class_list":["post-55000350","post","type-post","status-publish","format-standard","hentry","category-66022017","category-662017","category-Tabellen_entwerfen","category-Tools"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Indizierung in der Praxis - Access [basics]<\/title>\n<meta name=\"description\" content=\"In jedem Lehrbuch zur Datenbankentwicklung erfahren Sie, wie wichtig die Indizierung von Tabellenfeldern ist. Das betrifft jene, die in Vergleichs- und Filterabfragen eingeschlossen werden sollen und au\u00dferdem die Felder, welche mehrere Tabellen \u00fcber Indexfelder \u00fcber Schl\u00fcssel miteinander verkn\u00fcpfen. Ziel sind m\u00f6glichst performante Abfragen der Datenbank. Wir untersuchen hier, wie gro\u00df der Performancezuwachs in der Praxis tats\u00e4chlich ist.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Indizierung in der Praxis - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"In jedem Lehrbuch zur Datenbankentwicklung erfahren Sie, wie wichtig die Indizierung von Tabellenfeldern ist. Das betrifft jene, die in Vergleichs- und Filterabfragen eingeschlossen werden sollen und au\u00dferdem die Felder, welche mehrere Tabellen \u00fcber Indexfelder \u00fcber Schl\u00fcssel miteinander verkn\u00fcpfen. Ziel sind m\u00f6glichst performante Abfragen der Datenbank. Wir untersuchen hier, wie gro\u00df der Performancezuwachs in der Praxis tats\u00e4chlich ist.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2017-04-01T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/Relayout.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"20\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"http:\/\/vg08.met.vgwort.de\/na\/5b7ae9fae7784967b607d1c7825258a7\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html\",\"name\":\"Indizierung in der Praxis - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html#primaryimage\"},\"datePublished\":\"2017-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"In jedem Lehrbuch zur Datenbankentwicklung erfahren Sie, wie wichtig die Indizierung von Tabellenfeldern ist. Das betrifft jene, die in Vergleichs- und Filterabfragen eingeschlossen werden sollen und au\\u00dferdem die Felder, welche mehrere Tabellen \\u00fcber Indexfelder \\u00fcber Schl\\u00fcssel miteinander verkn\\u00fcpfen. Ziel sind m\\u00f6glichst performante Abfragen der Datenbank. Wir untersuchen hier, wie gro\\u00df der Performancezuwachs in der Praxis tats\\u00e4chlich ist.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Indizierung_in_der_Praxis.html\",\"name\":\"Indizierung in der Praxis\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000350"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000350\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}