Clients erfordern und erwarten eine möglichst schnelle Ausführung der Werkzeuge, daher muss Ihr Web-Werkzeug schnell und effizient sein. Da ArcGIS Server mehrere Clients gleichzeitig versorgen kann, führen ineffiziente Services möglicherweise zur Überlastung des Servers. Je effizienter die Services sind, desto mehr Clients können mit denselben Computerressourcen versorgt werden.
Mit den folgenden Tipps und Methoden lässt sich die Performance von Services steigern. Die Verfahren werden in einer bestimmten Reihenfolge dargestellt – die Verfahren, die die größte Performance-Steigerung ermöglichen, werden zuerst beschrieben. Mit den letzten Tipps lassen sich einige Zehntelsekunden an Ausführungszeit sparen. Dies kann in einigen Szenarien von Bedeutung sein.
Verwenden von Layern für Projektdaten
Wenn ein Werkzeug vor seiner Freigabe als Web-Werkzeug ausgeführt wird, müssen Sie das Werkzeug mithilfe von Layern als Eingabe statt mit Pfaden zu Datasets auf einer Festplatte ausführen. Ein Layer verweist auf ein Dataset auf der Festplatte, und Layer cachen Eigenschaften des Datasets. Dies gilt insbesondere für Netzwerk-Dataset-Layer und Raster-Layer. Wenn statt des Pfads zum Dataset ein Layer verwendet wird, steigert dies die Performance, weil der Service nach dessen Start den Layer aus dem Dataset erstellt, grundlegende Eigenschaften des Datasets zwischenspeichert und das Dataset geöffnet lässt. Wenn der Service ausgeführt wird, stehen die Eigenschaften des Datasets sofort zur Verfügung, und das Dataset ist geöffnet und steht bereit – eine Performance-Steigerung.
So erstellen beispielsweise der Sichtfeldservice auf dem Esri SampleServer und die ArcGIS Network Analyst extension Reisezeitpolygone, die Layer verwenden. Je nach Größe des Datasets können dadurch pro Serviceausführung mehr als ein oder zwei Sekunden eingespart werden.
Verwenden von lokal in ArcGIS Server gespeicherten Daten
Die vom Web-Werkzeug benötigten Projektdaten sollten lokal in ArcGIS Server gespeichert sein. Daten, die freigegeben werden oder auf die über eine Netzwerkfreigabe (UNC) zugegriffen wird, sind langsamer als wenn sie auf dem gleichen Rechner verfügbar wären. Die Performance-Werte variieren stark, es kann jedoch durchaus vorkommen, dass das Lesen und Schreiben von Daten in einem LAN doppelt so viel Zeit wie das Lesen von der lokalen Festplatte in Anspruch nimmt.
Schreiben von Zwischendaten in den Arbeitsspeicher
Schreiben Sie Zwischendaten (Scratch-Daten) in den in_memory-Workspace. Dies ist schneller als das Schreiben von Daten auf die Festplatte.
Hinweis:
Sie können auch Ausgabedaten in den Speicher schreiben, solange die Option zum Anzeigen von Ausgaben als Kartenbild-Layer nicht festgelegt ist.
Weitere Informationen zum Schreiben von Daten in den Speicher
Vorbereiten der Daten, die von Tasks verwendet werden
Die meisten Web-Werkzeuge sind als spezialisierte Workflows konzipiert, die Antworten auf spezifische räumliche Abfragen von Web-Clients liefern. Da es sich bei diesen Workflows um spezifische Vorgänge für bekannte Daten handelt, besteht fast immer die Möglichkeit, die Daten zum Optimieren des Vorgangs vorzuverarbeiten. Beispielsweise handelt es sich beim Hinzufügen eines Attributs oder räumlichen Indizes um eine einfache Vorverarbeitung, um räumliche oder Attributauswahlvorgänge zu optimieren. Nachfolgend finden Sie zusätzliche Beispiele:
- Im Lernprogramm Beispiel für GV-Service: Abflussgebiet werden hydrologische Daten durch das Erstellen eines Abflussakkumulations- und Fließrichtungs-Rasters vorverarbeitet.
- Mithilfe der Werkzeuge Near oder Near-Tabelle erstellen können Entfernungen zwischen Standorten vorab berechnet werden. Angenommen, Ihr Service erlaubt Clients, unbebaute Flurstücke auszuwählen, die sich in einer benutzerdefinierten Entfernung vom Los Angeles River befinden. Sie könnten diese Auswahl mithilfe des Werkzeugs Layer lagebezogen auswählen vornehmen, aber es wäre viel schneller, die Entfernung jedes Flurstücks vom Los Angeles River (mithilfe des Werkzeugs Near) vorab zu berechnen und die ermittelte Entfernung als Attribut der Flurstücke zu speichern. Sie würden dieses Attribut mithilfe des Werkzeugs Attributindex hinzufügen indizieren. Wenn der Client nun eine Abfrage stellt, kann Ihr Task anstatt einer weniger effizienten räumlichen Abfrage eine einfache und schnelle Attributauswahl auf Basis des Entfernungsattributs durchführen.
Hinzufügen von Attributindizes
Wenn das Werkzeug mit Attributabfragen Daten auswählt, erstellen Sie einen Attributindex für jedes in Abfragen verwendete Attribut. Sie können das Werkzeug Attributindex hinzufügen verwenden. Sie müssen den Index nur einmal erstellen. Dies erfolgt außerhalb des Modells oder Skripts.
Hinzufügen von räumlichen Indizes
Wenn das Modell oder Skript räumliche Abfragen von Shapefiles ausführt, erstellen Sie mit dem Werkzeug Räumlichen Index hinzufügen einen räumlichen Index für das Shapefile. Wenn Sie Geodatabase-Feature-Classes verwenden, werden räumliche Indizes automatisch erstellt und verwaltet. Unter bestimmten Umständen kann durch Neuberechnen eines räumlichen Index die Performance verbessert werden (siehe Festlegen von räumlichen Indizes).
Verwenden von "synchron" statt "asynchron"
Das Web-Werkzeug kann so eingestellt werden, dass es synchron oder asynchron ausgeführt wird. Die asynchrone Ausführung stellt für den Server eine Zusatzbelastung dar, was bedeutet, dass asynchrone Werkzeuge kaum unter einer Sekunde ausgeführt werden. Die synchrone Ausführung desselben Tasks erfolgt etwa um eine Zehntelsekunde schneller als im asynchronen Modus.
Vermeiden von unnötigen Koordinatentransformationen
Wenn das Web-Werkzeug Datasets aus verschiedenen Koordinatensystemen verwendet, müssen die Werkzeuge Koordinaten während der Ausführung möglicherweise in ein einziges gemeinsames Koordinatensystem transformieren. Je nach Größe der Datasets kann das Transformieren von Koordinaten von einem Koordinatensystem in ein anderes den Aufwand unnötig erhöhen. Sie müssen darauf achten, welches Koordinatensystem Ihre Datasets verwenden, und ob die Werkzeuge Koordinaten transformieren müssen. Sie können alle Datasets, die von Ihrem Werkzeug verwendet werden, in ein einzelnes Koordinatensystem transformieren.
Verringern der Datengröße
Jede Datenverarbeitungssoftware arbeitet schneller, wenn die Datasets klein sind. Nachfolgend finden Sie einige Möglichkeiten zur Verringerung der Größe von geographischen Daten:
- Entfernen Sie nicht benötigte Attribute Ihrer Projektdaten mit dem Werkzeug Feld löschen.
- Linien- und Polygon-Features weisen Stützpunkte auf, die die Form der Features definieren. Jeder Stützpunkt ist eine x,y-Koordinate. Ihre Features weisen möglicherweise mehr Stützpunkte als erforderlich auf, sodass die Größe des Datasets unnötig erhöht wird.
- Wenn die Daten aus einer externen Quelle stammen, enthalten sie eventuell doppelte Stützpunkte oder Stützpunkte, die so nahe beieinander liegen, dass sie nicht zur Definition des Features beitragen.
- Die Anzahl der Stützpunkte entspricht nicht dem Analysemaßstab. Beispielsweise enthalten die Features Details, die bei großen Maßstäben angemessen sind, jedoch wird die Analyse oder Präsentation mit einem kleinen Maßstab ausgeführt.