SQL Azure en Query plans / Performance

Enige tijd geleden heb ik al de verbeterde SQL Azure management portal laten zien. In den beginne (2008) hadden we helemaal niets en Project Houston was een grote stap in de goede richting. In December 2011 hebben ze de complete SQL Azure management portal onderhanden genomen en aangepast. Naast een meer Metro look-and-feel hebben ze ook allemaal extreem helpful tools en utilities toegevoegd.

sqlazureperf1

Als je klikt op de Administration in linker beneden hoek, krijg je een overzicht van de je database health etc. Informatie over onder andere de vulling van de database, aantal connecties en users. In dit geval is de database bijna nieuw en ongebruikt, dus is de query usage bijna leeg.

sqlazureperf12

Bij een database met meer activiteiten ziet dit gedeelte van de portal en iets spannender uit. Yep, mijn SQL Azure database zijn over het algemeen niet erg druk Winking smile.

sqlazureperf14

Als je klikt op de Query Performance link, krijg je meer gedetaileerde informatie over de queries op je database en hun performance. Dit geeft natuurlijk al een eerste indruk van de overall performance van je SQL Azure instance.

sqlazureperf13

Stel dat je een probleem hebt met een bepaalde query. Ik bedoel dan natuurlijk een performance probleem Winking smile. Om dan een goed beeld van de query te krijgen heb je vaak een Query plan nodig. Vroeger had je als tool SQL Server Management Studio en een handvol SQL Azure Management views.

sqlazureperf10

Ok, dit was mooi. Maar er was ook een nadeel, er was altijd wat latency tussen de client en de SQL Azure instance etc. Niet helemaal perfect dus.

Maar nu kun je op de nieuwe portal ook query plans bekijken in de Cloud dus Winking smile. Met behulp van de portal kun je een query maken en laten uitvoeren. Nu zijn er twee opties bijgekomen. Nu zijn er RUN, Actual Plan and Estimate plan.

sqlazureperf2

Met RUN krijg je het resultaat van je query. Simpel zoals je gewend was met de Project Houston site.

sqlazureperf3

Kies je voor Actual Plan, dan krijg je een extra tab: Query Plan.

sqlazureperf4

Op deze tab vind je een grafische weergave van je query plan. En aangezien het gemaakt is met Silverlight 5 ziet het er mooier uit dan de ‘old’ SQL Server Management Studio. Wederom zijn er drie opties: Total, CPU and IO.

sqlazureperf5

sqlazureperf6

sqlazureperf7

Daarnaast kun je ook nog de details bekijken door te kiezen voor een Grid of een Tree.

sqlazureperf8

sqlazureperf9

In de grafische versie van het query plan kun je dat ook al een beetje zien, daarvoor moet je beetje spelen met het zoom level.

sqlazureperf11

Hoe mooi is dat! Er bijna geen reden meer om nog een Client tool zoals SQL Server Management Studio te gebruiken of te hebben. Bijna alles kan nu in de Cloud.

Silverlight vs HTML5

Een collega MVP-ers mailde eens: “I’ve got friends that were heavy into SL development that now do none. It’s gone from their #1 technology to now being banned for development within their company. What changed? The first time that one of their clients said “now show me how it looks on my iPad” and they had no answer.”

Dit geldt overigens voor mijn gevoel voor elke plugin gebasseerde technologie (Flash, Java (tot op zekere hoogte)). Het succes van iPad en de combi iPad/Safari laat de kwetsbaarheid zien van tooling die afhankelijk is van functionaliteit van browser plugin’s.

Het lijkt mij niet verstandig om een plugin gebasseerde technologie nog aan te prijzen bij een SAAS product. Is het een on premise oplossing met strakke regie op hardware/software of de besturingsconsole van een groot apparaat (dat niet remote overgenomen hoeft te worden) dan zou ik zeker bouwen met Silverlight en valt de weegschaal naar de andere kant uit.

Maar ook waar geldt ‘bring your own device’ (nb waarbij device ook een browser of choice zou kunnen zijn) maakt een plugin gebasseerde technologie niet meteen een first class choice of een no brainer.

Kort gezegd: bij software in een SAAS omgeving dan is een plugin based technologie niet handig, tenzij je regie kunt uitoefenen op de client of hardware gebonden (zoals bijv Windows Phone, Xbox etc).

Een klant van ons, deze heeft ook een SAAS product, heeft ervoor gekozen om hun product te ontwikkelen in Silverlight. Met als reden dat deze technologie voldoende volwassen is en zij hun klanten best tot de Silverlight plugin kunnen verplichten. Ook vonden zij het belangrijk dat hun klanten moesten kunnen kiezen voor een lokaal geïnstalleerde out-of-browser applicatie.

Ten aanzien van mobiele devices zal het (vermoedelijk) nooit zo zijn, dat alle functionaliteiten van een client product via een dergelijk platform beschikbaar gemaakt zal worden. Meestal gaat het om delen of deelgebieden van een product, waarbij het device zijn pros ten volle kan benutten. iPad is bijzonder als het gaat om de web browser. De overige mobiele devices hebben vaak te kleine schermen, waar de volledige functionaliteit niet tot zijn recht komt en nauwelijks bruikbaar.

Ik ben in elk geval wel van mening, dat de keuze tussen Silverlight en HTML5 geen zwart-wit keuze is.

Ik hoor graag in de comments wat jullie mening is.

Windows Azure management via WP7

Op dit moment kun je je Windows Azure services monitoren en beherenvia de Windows Azure management portal. Maar deze portal is geimplementeerd met behulp van Silverlight, dit maakt de portal minder toegangelijk met een browser die geen plugins ondersteund.

Het Windows Azure platform heeft een rijke API met management REST calls om je services te beheren en te controleren. The API is erg handig om gereedschappen te implementeren op andere platforms. Uiteraard zijn er ook PowerShell Cmdlets of Cerebrata Cmdlets waarmee je het meest van de management taken kunt uitvoeren via PowerShell.

Als je de API vanuit een Windows forms app wilt gebruiken, dan is dat redelijk simpel. Hieronder is een snippet. Een groter voorbeeld kan gevonden worden in het Windows Azure Development Cookbook van Niel Mackenzie (Windows Azure MVP).

wa_wp7tool1

Ik wilde altijd een implementatie maken op mijn Windows Phone 7 device. Maar…

Enige weken geleden vond ik een erg aardige Windows Phone 7 app. Met deze app kun je je eigen Windows Azure services beheren vanaf je Windows Phone 7.

DSC_0017DSC_0018

DSC_0019DSC_0021

Zoals je ziet, kun je ook instanties toevoegen en verwijderen. Oke, als je dit thuis wilt doen, er is niet een directe REST call om dit te doen. Je moet de configuration ophalen, veranderen en terugzetten.

Meer informatie over het tool kun je vinden op http://azuremonitor.plainconcepts.com/

wa_wp7tool2

Ik wil later nog eens terug komen het gebruik van de management API.

SQL Azure Reporting Preview

Wat er op het Windows Azure platform nog ontbrak, was een implementatie van SQL Server Reporting Services (SSRS). Dat betekende niet, dat reports helemaal niet mogelijk waren. Alleen was er geen service waar deze reports opgeslagen konden worden.

Met Visual Studio 2010 kun je een report (RDLC) maken en deze laten connecten naar een SQL Azure database. Door de report (RDLC) op Windows Azure storage te plaatsen, kun je de report definitie aanpassen zonder een volledige deploy van je Windows Azure service te doen.

meijerreport7

Maar nu komt SQL Azure Reporting er toch echt aan. Er was al een beperkte CTP beschikbaar, maar nu is Reporting in een echte Preview vorm beschikbaar. Wat nog niet kan, is een andere datasource kiezen dan SQL Azure. Mocht je dus behoefte hebben aan een XML source of iets dergelijks, dan zul je de RDLC oplossing richting moeten kiezen.

meijerreport1

Voor het ontwikkelen van een rapport volgt je het development traject, zoals je dat met de ‘tradionele’ SQL Reporting ook gewend bent. Je gaat aan de slag met SQL Server Business Intelligence Development Studio. Daar maak je een Reporting project en dan ga je aan de slag met de Report Wizard of maak je van scratch af aan een Report. Als je Report dan klaar is, kun je hem gewoon deployen. Uiteraard wel naar de SQL Azure Reporting server https://<server>.reporting.windows.net/reportserver. Op deze URL kun je ook een preview krijgen van het report, dat je gedeployed hebt.

meijerreport2

meijerreport3

meijerreport10

De Target Server URL is de server waar de report definitie (RDL) gedeployed gaat worden. Ten opzichte van de vorige preview kun je nu veel meer dingen regelen. De rapporten kunnen op de server netjes gegroepeerd worden door ze in verschillende folders of directories te plaatsen. Ook kun je gebruikers toevoegen en rechten uit delen. Dit maakt SQL Azure reporting erg krachtig.

meijerreport4

Op de Windows Azure portal kunnen we ook door klikken naar de directories etc. En zoals we inmiddels gewend zijn met de Windows Azure portal is er ook een rechtermuis context menu, waarbij je bepaalde acties/settings kunt doen.

meijerreport5

Tijdens de preview kon je wel naar de Report server, maar daar kun je helaas niet veel.

meijerreport6

Het rapport op de server kun je in je ASPX pagina heel eenvoudig toevoegen.

meijerreport8

Je zult natuurlijk wel de credentials voor het rapport nog goed moeten zetten, maar dan werkt het allemaal erg makkelijk.

meijerreport9

Nu staat bijna niets meer in de weg om geweldige Windows Azure applicaties te verrijken met SQL Azure reporting.

Het enige wat ik nog jammer vindt, is het ReportViewer control. Hoewel dit control erg rijk is aan functionaliteit (in een project gebruiken we deze om rapporten te saven als PDF in een WorkerRole), het control is nog wel steeds gebaseerd op oude architecturen. Het is mogelijk om de ReportViewer te gebruiken in bijvoorbeeld SilverLight, maar dan moet je altijd een uitstapje maken naar HTML of ASPX. Laten we hopen dat hier nog iets aan gedaan wordt.

Office 365 en Mobile

Office 365 is Microsofts online Office gehost in de Cloud. De voorloper hiervan was BPOS (Business Productivity Online Services), maar Office 365 bevat de laatste versies van de bijbehorende on premise software.

Met Microsoft Online Services werk je altijd online met de beste software van Microsoft voor een vast bedrag per gebruiker per maand. Deze dienst wordt door Microsoft verzorgd en de data staat in de datacenters van Microsoft in Ierland en Nederland. Microsoft Online Services biedt met Office 365 (plan P1), bedoeld voor professionals en kleine organisaties, de volgende functionaliteiten:

  • Email, agenda en contacten: Snel en vertrouwd werken vanuit Microsoft Outlook of via Outlook Web Access (OWA) vanuit de browser met Microsoft Exchange Online,
  • Documenten delen en samenwerken: Eenvoudig door het gebruik van Microsoft SharePoint Online,
  • Instant messaging en webmeetings: Eenvoudig onderling communiceren met Microsoft Lync Online,
  • Opzetten van een publieke website: Op basis van standaard templates met Microsoft SharePoint Online,
  • Werken met bestanden: Documenten bewerken vanuit de browser met Office Web Apps (Word, Excel, PowerPoint, OneNote).

meijer03651_thumb[1]

Het delen van documenten via de team site is dan erg makkelijk.

meijer03652_thumb[1]

De SDN gebruikt voor haar interne automatisering op dit moment nog BPOS. Voor mijn prive doeleinden heb ik een Office 365 P abonnement afgesloten. Maar hele grote organisaties kunnen zeker ook bij Office 365 terecht. Er zijn zelfs mogelijkheden om de Lync aan te sluiten op je bedrijfs telefoon centrale.

Maar het mooiste van Office 365 is de integratie met Windows Phone 7. Uiteraard kun je gewoon met de Windows Phone outlook client connecten naar de Office 365 exchange server.

meijer03653_thumb[1]

Maar standaard zit er op de Windows Phone 7 een tile met de naam Office oftewel de Office Hub. Deze hub bevat naast Skydrive integratie ook de mogelijkheid om te koppelen met SharePoint sites of Office 365. In dit Office hub kun je de vollgende dingen zien.

meijer03654_thumb[2]

Inmiddels is er ook een Lync client aanwezig, zodat je zelf op je telefoon online (!?) kunt zijn.

meijer03655_thumb[2]

Maar dit is niet gelimiteerd to alleen het Microsoft platform. Inmiddels is er ook een Lync client voor de iPhone/iPad.

meijer03656_thumb[2]

Office 365 is voor de zakelijke markt absoluut een uitkomst. Voor de consumenten markt is er ook een goedkoper alternatief. Met je Live id (hotmail of live of MSN), SkyDrive, Messenger en Windows Phone 7 kom je een heel eind. . Het enige dat je dan mist is de SharePoint teamsite. Ook deze kun je op de iPhone/iPad tegenwoordig prima benaderen, aangezien de bijbehorende websites inmiddels allemaal gebaseerd zijn op HTML5.