Query CachingQuery Cache stellt die Ergebnisse einer Datenbankabfrage in den Speicher ColdFusion Server, wo sie können sofort und ohne Abfrage der Datenbank abgerufen werden. Query Cache ist eines der nützlichsten Werkzeuge zur Steigerung der Rechenleistung in Ihrem ColdFusion-Anwendungen, leider ist es auch eines der am wenigsten genutzt. Einige Einschränkungen sind in-Abfrage beteiligt sind, aber alles in allem ist es eine sehr einfache Technik zu beschäftigen. Sie sollten sich überlegen Zwischenspeicherung nur Abfragen, die die folgenden Kriterien entsprechen:
Die Abfrage hat einen wesentlichen zulässigen Latenz. Mit anderen Worten, die Daten in der Ergebnismenge nicht häufig ändern und ist daher über einen nicht unerheblichen Zeitraum stabil. Die Abfrage ist im Anwendungsbereich universell, so dass alle Benutzer Ihrer Anwendung genau die gleiche Abfrageergebnis nutzen können. Die Abfrage erfordert erhebliche Ressourcen zu verarbeiten. Ein anderer Weg, um es zu betrachten ist wie folgt: Die Latenzzeit gibt Ihnen die Erlaubnis zur Nutzung des Cache. Die Universalität der Tragweite Caching möglich. Die Anforderungen an die Verarbeitung machen Caching notwendig. Wenn Sie eine Abfrage-Cache, Ihnen eine Kopie davon in der Erinnerung und weisen ColdFusion MX um den Speicher abzurufen-basierte Version der Abfrage für eine bestimmte Zeit. Zum Beispiel, hows den Code ein CFQUERY Caches, dass das Ergebnis für 12 Stunden, festzulegen, ab dem ein weiterer Anruf auf CFQUERY ruft die Daten direkt aus der Datenbank und Caches, die neue Ergebnis im Speicher gesetzt.
Der Code zeigt, dass ein CFQUERY Caches das Ergebnis nach dem 1. Uhr am 4. Juli 2002, vor dieser Zeit, ruft ein Aufruf an CFQUERY seine Daten direkt aus der Datenbank.
CachedWithin ist die am häufigsten gebrauchten der beiden verfügbaren Attribute Caching. CachedAfter hat sehr wenige praktische Anwendungen, es wird hauptsächlich verwendet, bis eine bestimmte Zeit, wenn neue Daten vorliegen, die Ihre Datenbank von einigen externen Prozess warten und dann den Cache des neuen Daten. Gute Kandidaten für die Zwischenspeicherung von Abfragen sind wie folgt: Der Online-Shop Katalog-Seiten, die Anzeige des Bildes und Beschreibungen der Kategorien der verkauften Artikel. Der Online-Shop Katalog Seiten, die einzelnen Kategorien und-Gegenstände. Die Liste der Artikel zum Verkauf in einem Online-Shop. Wählen Sie die Menüs, die dynamisch mit selten geänderten Daten, wie z. B. die Namen der Abteilungsleiter bevölkert sind.
Alles zwischen den öffnenden und schließenden Tags CFTRANSACTION gilt als einer einzigen Transaktion. Für diese Transaktion erfolgreich zu sein, sowohl des Inserts in die OrderItem Tisch und die Aktualisierung des InventoryItem Tabelle muss gelingen. Das ist die ganze Idee einer Transaktion: alles oder nichts. Wenn beide Abfragen erfolgreich sind, verpflichtet sich die Transaktion und die Auswirkungen der beiden Abfragen werden in die Datenbank geschrieben. Wenn eine Abfrage fehlschlägt, wird die gesamte Transaktion rückgängig gemacht, als ob nichts geschehen je. In dem Beispiel in den vorangegangenen Teil liefert ColdFusion die Befehle für den Anfang und das Ende der Transaktion, sondern in vielen Fällen ist eine solche Kontrolle auf der Datenbank-Server selbst mithilfe der nativen Datenbank-Kommandos erledigt. Wo also sollten Sie die Kontrolle einer Transaktion? Die einfache Antwort auf diese Frage ist immer "Auf dem Datenbank-Server, wenn Sie können." Der Grund für diese Antwort ist die Datenbank-Fähigkeit, ihre Geschäfte mittels nativer Befehle und Funktionen, anstatt sich Kontrolle auf die Fähigkeit der Datenbank-Treiber zu Transaktions-Steuerung an die Datenbank zu übermitteln. Einige Datenbank-Treiber nicht über die Fähigkeit, Transaktions-Steuerbefehle an die Datenbank übergeben, so dass in diesen Fällen müssen Sie alle Kontrollen von Vorgängen innerhalb einer gespeicherten Prozedur in der Datenbank und kapseln rufen sie von ColdFusion. Einige andere Fahrer kommunizieren kann nur eine Untermenge der verfügbaren Transaktionsdaten der Datenbank Steuerbefehle und sind daher nicht als fähig eine Lösung. Jetzt auf eine Transaktion, die innerhalb der gespeicherten Prozedur selbst gesteuert wird Look. Dieser Code ist das Äquivalent der anderen, es sei denn, dass die Transaktion innerhalb der gespeicherten Prozedur kontrolliert und nicht in ColdFusion. BEGIN TRANSACTION INSERT INTO OrderItem (SalesOrderID, ItemNumber, Beschreibung, Einzelpreis, Menge) VALUES (1, 'CAS30-BLK', '30-Minuten-Cassette, schwarzes Gehäuse, 1,05, 10) IF @ @ ERROR! = 0 BEGIN RAISERROR 50001 "Die OrderItem konnte nicht eingefügt werden." ROLLBACK TRANSACTION RETURN END UPDATE InventoryItem SET AvailableToSell = AvailableToSell - 10 WHERE ItemNumber = 'CAS30-BLK' IF @ @ ERROR! = 0 BEGIN RAISERROR 50002 "Die InventoryItem konnte nicht aktualisiert werden." ROLLBACK TRANSACTION RETURN END COMMIT TRANSACTION Die Syntax ist ein wenig anders, aber die Prinzipien sind sehr ähnlich, nicht wahr? Es ist wirklich nur eine Frage des Lernens sowohl Methoden für die Durchführung der Transaktionen und sie dann die Kontrolle über die Datenbank-Server in der Nähe wie Ihre Anwendung ermöglicht es Ihnen, dies zu tun. Ein Artikel von Richard vorgelegt Brighton Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Query Caching" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 194 users browsing the articles directory |
|
|