2012-03-27 7 views
0

Ich frage mich, ob jemand sicher bestätigen kann, ob SQL Azure Hierarchieknoten unterstützt und wie vergleichbar es mit der SQL 2008-Hierarchie-ID in Bezug auf Leistung/Skalierbarkeit ist.SQL Azure HierarchyId-Unterstützung?

Im Grunde sind wir dabei, ein System zu migrieren, das die existierenden HierarchyId's in sehr performancekritischen Methoden ausnutzt und die Unterstützung für dieses Feature ist ein gewaltiger Spielwechsler für das Projekt, aber ich habe keinen Zugang zu einem SQL Azure-Datenbank, um dies derzeit selbst zu testen.

Ich habe einige Verweise darauf als Teil von SQL Azure SU3 im Jahr 2010 veröffentlicht, aber zur gleichen Zeit habe ich Widersprüche von Microsoft, wo sie im Wesentlichen gesagt haben, dass es nicht in SQL Azure unterstützt wird (Direkt im Gegensatz zu einem offiziellen Ankündigung, leider nicht direkt zu mir, so konnte ich nicht fragen, wie ich wollte) ...

Ich hatte gehofft, jemand mit ein wenig Erfahrung mit Azure könnte mich wissen, welche Seite wahr ist, und Wenn die Funktion vorhanden ist, ob die Leistung mit SQL Server 2008 vergleichbar ist?

+0

Für welche Art von Operationen interessieren Sie sich? Wir verwenden den HierarchyId-Typ in unserem Azure-Projekt nur wenig (zum Sortieren von Software-Build-Versionen) wie 'order by cast '('/'+ replace (Version,'. ','/') +'/'Als hierarchyid)' So sollte der Typ da sein, aber ich habe keine Erfahrung, was Sie damit tun könnten. –

+0

In erster Linie für die IsDescendantOf-Methode verwenden (Es gibt mehr, die wir verwenden, aber wenn das noch funktionierte, könnten wir wahrscheinlich umgehen sich ausruhen). Wir verwenden es hauptsächlich für die Leistung, die es für die Abfrage von massiven dynamischen Baumstrukturen gibt. – fyjham

Antwort

1

Ja, SQL Azure unterstützt hierarchyid als Datentyp und die zugehörigen Funktionen. Eine Beschreibung, welche Funktionen unterstützt werden, finden Sie unter see this article. Gehen Sie zum Ende des Artikels für den Hierarchie-Datentyp.

Egal, was die offizielle Dokumentation sagt, sollten Sie unbedingt Ihr Datenbankschema gegen eine SQL Azure-Datenbank versuchen. Das Erstellen eines Azure-Kontos dauert einige Sekunden, und es ist auch ziemlich einfach herauszufinden, ob das Datenbankschema kompatibel ist.

Allerdings frage ich mich, was Sie meinen, indem Sie "performance-critical operations" ausführen. Sie sollten SQL Azure wahrscheinlich hinsichtlich der Leistung testen, um sicherzustellen, dass Sie das bekommen, was Sie benötigen.

+0

Danke für den Link, sieht aus, als hätte er, was wir brauchen. Bei performance-kritischen Operationen beziehe ich mich auf eine Multi-Gigabyte-Datenbank und die HierarchyId IsDescendantOf-Filterung in unseren Abfragen ist sehr gebräuchlich - bis zu dem Punkt, wo zum Beispiel ein rekursiver CTE für einige von ihnen den Datenbankserver zu 100% schleifen lässt. CPU bis Timeout, um das exakt gleiche Ergebnis zu erzielen. Wir beabsichtigen auf jeden Fall, einige eigene Leistungstests durchzuführen, ich habe nur gehofft, ein hohes Niveau an Zusicherungen zu bekommen, bevor wir genug investieren, um sogar die Leistung zu testen - in dieser Phase ist es nur eine mögliche Idee. – fyjham