2016-09-22 6 views
0

Ich habe eine Datenbank, die von einer Multi-Tenant-Anwendung verwendet wird. Vor kurzem haben wir einige Leistungsprobleme mit der Datenbank. Ich denke, das Hinzufügen einiger korrekter Indizes wird dieses Problem beheben. Ich habe über Azure SQL Advisor gelesen. Microsoft sagt, dass sie Nutzungsmuster analysieren und Indexempfehlungen mithilfe eines maschinellen Lernalgorithmus bereitstellen. Ich habe das Gefühl, dass ich den Profiler verwenden kann, um die Arbeitslast zu verfolgen und den SQL-Tuning-Advisor zu verwenden, um die Indexempfehlungen zu erhalten. Was ist der Vorteil der Verwendung von Azure SQL Advisor, der einen maschinellen Lernalgorithmus verwendet? Was ist das große daran?Warum maschinelles Lernen für Indexberater?

Antwort

2

Ein maschineller Lernalgorithmus (hier der Advisor) nimmt Daten als Eingabe (hier die Nutzungsmuster) und baut daraus ein mathematisches Modell auf. Dieses Modell verallgemeinert die Daten. Eine Anwendung eines solchen Programms könnte darin bestehen, ein zukünftiges Ereignis abzuschätzen oder ein Verhalten zu optimieren (indem das Minimum oder Maximum eines mathematischen Funktionals gefunden wird). Hier wird die Indexempfehlung optimiert.

Natürlich können Sie das Problem möglicherweise selbst beheben. Wenn Sie ein Experte in diesem Bereich sind und wissen, was zu tun ist, benötigen Sie keinen maschinellen Lernalgorithmus. Der Algorithmus ist eine Alternative, die die Arbeit für Sie erledigt. Wer die besseren Ergebnisse hat, hängt einerseits von den Eingabedaten und dem Algorithmus und andererseits von Ihrem Fachwissen ab.

+0

Wenn wir versuchen, den Indexierungsprozess zu automatisieren, warum sollten wir einen maschinellen Lernalgorithmus verwenden? Microsoft kann einfach die Arbeitslast sammeln und sie an einen gewöhnlichen SQL-Tuning-Berater senden und die richtigen Empfehlungen erhalten? Warum lernen? –

+0

@DeepanCool: Indizierung macht nur diejenigen Abfragen schneller, die nach den indizierten Spalten filtern. Wenn man also die Arbeitsbelastung im Allgemeinen berücksichtigt, hilft das nicht, eine Empfehlung für die Indexierung zu geben - wir müssen wissen, welche Art von Anfragen erledigt werden. Der maschinelle Lernalgorithmus berücksichtigt die Arten von Abfragen, um die Indizes zu empfehlen. Was macht der "gewöhnliche SQL Tuning Advisor"? Empfiehlt es, welche Spalten zu indexieren? Wenn ja, basierend auf was? – Make42

Verwandte Themen