<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Syringe.Net.Nz</title>
  <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/" />
  <link rel="self" href="http://www.syringe.net.nz/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2012-09-17T17:01:44.4791746+12:00</updated>
  <author>
    <name>Chris J.T. Auld</name>
  </author>
  <subtitle>Irregular Injection Of Opinion</subtitle>
  <id>http://www.syringe.net.nz/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>SQL Azure Federations Deep Dive&amp;ndash;TechEd ANZ</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2012/09/17/SQLAzureFederationsDeepDivendashTechEdANZ.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,4a1e12ab-f8fc-4688-9df2-3af05c90e102.aspx</id>
    <published>2012-09-17T16:51:04.8076244+12:00</published>
    <updated>2012-09-17T17:01:44.4791746+12:00</updated>
    <content type="html">&lt;p&gt;
So I promised that I’d post all the bits from my TechEd Australia and NZ session on
SQL Azure Federations. I have been tardy in delivering on this goal.
&lt;/p&gt;
&lt;p&gt;
If you missed the session they recorded it for me in Auckland so you can take a look
at the recording on channel 9: &lt;a title="http://channel9.msdn.com/Events/TechEd/NewZealand/TechEd-New-Zealand-2012/AZR304" href="http://channel9.msdn.com/Events/TechEd/NewZealand/TechEd-New-Zealand-2012/AZR304"&gt;http://channel9.msdn.com/Events/TechEd/NewZealand/TechEd-New-Zealand-2012/AZR304&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
So here goes.
&lt;/p&gt;
&lt;p&gt;
The first item is the SQL Script that I walked through. This will give you a high
level idea of the basics of Federations using a simple eCommerce type scenario (partial
AdventureWorks)
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;--&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; Task 1 – &lt;span class="kwrd"&gt;Create&lt;/span&gt; Federations
Root &lt;span class="kwrd"&gt;Database&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;DATABASE&lt;/span&gt; [TechEd2012] &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 2 – &lt;span class="kwrd"&gt;Connect&lt;/span&gt; directly &lt;span class="kwrd"&gt;to&lt;/span&gt; Root &lt;span class="kwrd"&gt;Database&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
/* &lt;span class="kwrd"&gt;Using&lt;/span&gt; tooling support &lt;span class="kwrd"&gt;in&lt;/span&gt; latest
release &lt;span class="kwrd"&gt;of&lt;/span&gt; SQML Management studio */ --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 3 – &lt;span class="kwrd"&gt;Create&lt;/span&gt; Federation &lt;span class="kwrd"&gt;Object&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="kwrd"&gt;CREATE&lt;/span&gt; FEDERATION
CustomerFederation(cid BIGINT RANGE) &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 4 – &lt;span class="kwrd"&gt;View&lt;/span&gt; Federations Metadata &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="rem"&gt;--
Route connection to the Federation Root&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
ROOT &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; db_name()
[db_name], db_id() [db_id] &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federations &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_distributions &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_member_distributions &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; federation_id,
range_low; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.databases; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="rem"&gt;--
Route connection to the 1 Federation Member (aka shard)&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
CustomerFederation(cid=100) &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET, FILTERING=&lt;span class="kwrd"&gt;OFF&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; db_name()
[db_name], db_id() [db_id] &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federations &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_distributions &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_member_distributions &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; f.name,
fmc.federation_id, fmc.member_id, fmc.range_low, fmc.range_high &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federations
f &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.federation_member_distributions fmc &lt;span class="kwrd"&gt;ON&lt;/span&gt; f.federation_id=fmc.federation_id &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; fmc.federation_id,
fmc.range_low; &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 5 – &lt;span class="kwrd"&gt;Create&lt;/span&gt; Federated Tables &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="rem"&gt;--
Route connection to the 1 Federation Member (aka shard). &lt;/span&gt; &lt;span class="rem"&gt;--
Filtering OFF so we can make DDL operations&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
CustomerFederation(cid=10) &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET, FILTERING=&lt;span class="kwrd"&gt;OFF&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="rem"&gt;--
Table [dbo].[Customer]&lt;/span&gt; &lt;span class="kwrd"&gt;SET&lt;/span&gt; ANSI_NULLS &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;SET&lt;/span&gt; QUOTED_IDENTIFIER &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; [dbo].[Customer](
[CustomerID] [bigint] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
[Title] [nvarchar](8) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, [FirstName] [nvarchar](50) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
[MiddleName] [nvarchar](50) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, [LastName] [nvarchar](50) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
[Suffix] [nvarchar](10) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, [CompanyName] [nvarchar](128) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
[SalesPerson] [nvarchar](256) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, [EmailAddress] [nvarchar](50) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
[Phone] [nvarchar](25) &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, &lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; [PK_Customer] &lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt; &lt;span class="kwrd"&gt;KEY&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; (
[CustomerID] &lt;span class="kwrd"&gt;ASC&lt;/span&gt; ) )FEDERATED &lt;span class="kwrd"&gt;ON&lt;/span&gt; (cid=CustomerID)
--Note the &lt;span class="kwrd"&gt;use&lt;/span&gt; &lt;span class="kwrd"&gt;of&lt;/span&gt; the FEDERATED &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;statement&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; [dbo].[&lt;span class="kwrd"&gt;Order&lt;/span&gt;](
[OrderID] [uniqueidentifier] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt; &lt;span class="kwrd"&gt;DEFAULT&lt;/span&gt; newid(),
[CustomerID] [bigint] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,
[OrderTotal] [money] &lt;span class="kwrd"&gt;NULL&lt;/span&gt;, &lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; [PK_Order] &lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt; &lt;span class="kwrd"&gt;KEY&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; (
[OrderID],[CustomerID] &lt;span class="kwrd"&gt;ASC&lt;/span&gt; ) )FEDERATED &lt;span class="kwrd"&gt;ON&lt;/span&gt; (cid=CustomerID)
--Note the &lt;span class="kwrd"&gt;use&lt;/span&gt; &lt;span class="kwrd"&gt;of&lt;/span&gt; the FEDERATED &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;statement&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 6 – Insert &lt;span class="kwrd"&gt;Dummy&lt;/span&gt; &lt;span class="kwrd"&gt;Data&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="rem"&gt;--
Route connection to the 1 Federation Member (aka shard). &lt;/span&gt; &lt;span class="rem"&gt;--
Filtering OFF so we can insert multiple Atomic Units&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
CustomerFederation(cid=10) &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET, FILTERING=&lt;span class="kwrd"&gt;OFF&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; [dbo].[Customer]
([CustomerID] ,[Title] ,[FirstName] ,[MiddleName] ,[LastName] ,[Suffix] ,[CompanyName]
,[SalesPerson] ,[EmailAddress] ,[Phone]) &lt;span class="kwrd"&gt;VALUES&lt;/span&gt; (55, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Frank'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Campbell'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Rally
Master Company Inc'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'frank4@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'491-555-0132'&lt;/span&gt;),
(56, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Brian'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Groth'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Latest
Accessories Sales'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\david8'&lt;/span&gt;, &lt;span class="str"&gt;'brian5@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'461-555-0118'&lt;/span&gt;),
(57, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Judy'&lt;/span&gt;, &lt;span class="str"&gt;'R.'&lt;/span&gt;, &lt;span class="str"&gt;'Lundahl'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Leading
Sales &amp;amp; Repair'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'judy1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'260-555-0130'&lt;/span&gt;),
(58, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Peter'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kurniawan'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Largest
Bike Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'peter4@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'436-555-0160'&lt;/span&gt;),
(59, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Douglas'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Groncki'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Locks
Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'douglas2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'385-555-0140'&lt;/span&gt;),
(60, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Sean'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Lunt'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Main
Bicycle Services'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\linda3'&lt;/span&gt;, &lt;span class="str"&gt;'sean4@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'183-555-0111'&lt;/span&gt;),
(61, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Jeffrey'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kurtz'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Many
Bikes Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'jeffrey3@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'452-555-0179'&lt;/span&gt;),
(64, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Vamsi'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kuppa'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Metal
Clearing House'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'vamsi1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'290-555-0196'&lt;/span&gt;),
(65, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Jane'&lt;/span&gt;, &lt;span class="str"&gt;'P.'&lt;/span&gt;, &lt;span class="str"&gt;'Greer'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Metro
Manufacturing'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'jane2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'737-555-0163'&lt;/span&gt;),
(66, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Alexander'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Deborde'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Neighborhood
Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\garrett1'&lt;/span&gt;, &lt;span class="str"&gt;'alexander1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'394-555-0176'&lt;/span&gt;),
(70, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Deepak'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kumar'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Outdoor
Aerobic Systems Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jae0'&lt;/span&gt;, &lt;span class="str"&gt;'deepak0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'1
(11) 500 555-0122'&lt;/span&gt;), (73, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Margaret'&lt;/span&gt;, &lt;span class="str"&gt;'T.'&lt;/span&gt;, &lt;span class="str"&gt;'Krupka'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Outdoor
Sports Supply'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\pamela0'&lt;/span&gt;, &lt;span class="str"&gt;'margaret1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'107-555-0132'&lt;/span&gt;),
(74, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Christopher'&lt;/span&gt;, &lt;span class="str"&gt;'M.'&lt;/span&gt;, &lt;span class="str"&gt;'Bright'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Parcel
Express Delivery Service'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\david8'&lt;/span&gt;, &lt;span class="str"&gt;'christopher2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'162-555-0166'&lt;/span&gt;),
(75, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Aidan'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Delaney'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Paint
Supply'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'aidan0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'358-555-0188'&lt;/span&gt;),
(76, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'James'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Krow'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Out-of-the-Way
Hotels'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'james11@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'265-555-0190'&lt;/span&gt;),
(77, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Michael'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Brundage'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Mechanical
Products Ltd.'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'michael13@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'128-555-0148'&lt;/span&gt;),
(78, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Stefan'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Delmarco'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Preferred
Bikes'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\linda3'&lt;/span&gt;, &lt;span class="str"&gt;'stefan0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'819-555-0186'&lt;/span&gt;),
(79, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Mitch'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kennedy'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Reasonable
Bicycle Sales'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'mitch0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'996-555-0192'&lt;/span&gt;),
(82, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'James'&lt;/span&gt;, &lt;span class="str"&gt;'D.'&lt;/span&gt;, &lt;span class="str"&gt;'Kramer'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Refined
Department Stores'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'james10@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'814-555-0130'&lt;/span&gt;),
(83, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Eric'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Brumfield'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Requisite
Part Supply'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'eric3@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'644-555-0114'&lt;/span&gt;),
(84, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Della'&lt;/span&gt;, &lt;span class="str"&gt;'F.'&lt;/span&gt;, &lt;span class="str"&gt;'Demott
Jr'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Rewarding Activities Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\garrett1'&lt;/span&gt;, &lt;span class="str"&gt;'della0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'752-555-0185'&lt;/span&gt;),
(88, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Pamala'&lt;/span&gt;, &lt;span class="str"&gt;'M.'&lt;/span&gt;, &lt;span class="str"&gt;'Kotc'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Closest
Bicycle Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jae0'&lt;/span&gt;, &lt;span class="str"&gt;'pamala0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'1
(11) 500 555-0173'&lt;/span&gt;), (91, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Joy'&lt;/span&gt;, &lt;span class="str"&gt;'R.'&lt;/span&gt;, &lt;span class="str"&gt;'Koski'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Scooters
and Bikes Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\pamela0'&lt;/span&gt;, &lt;span class="str"&gt;'joy0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'810-555-0198'&lt;/span&gt;),
(92, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Jovita'&lt;/span&gt;, &lt;span class="str"&gt;'A.'&lt;/span&gt;, &lt;span class="str"&gt;'Carmody'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Sports
Commodities'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\david8'&lt;/span&gt;, &lt;span class="str"&gt;'jovita0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'646-555-0137'&lt;/span&gt;),
(93, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Prashanth'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Desai'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Stationary
Bikes and Stands'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'prashanth0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'138-555-0156'&lt;/span&gt;),
(94, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Scott'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Konersmann'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Specialty
Sports Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'scott6@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'556-555-0192'&lt;/span&gt;),
(96, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Jane'&lt;/span&gt;, &lt;span class="str"&gt;'N.'&lt;/span&gt;, &lt;span class="str"&gt;'Carmichael'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Rural
Department Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'jane0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'716-555-0167'&lt;/span&gt;),
(97, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Bonnie'&lt;/span&gt;, &lt;span class="str"&gt;'B.'&lt;/span&gt;, &lt;span class="str"&gt;'Lepro'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'More
Bikes!'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\linda3'&lt;/span&gt;, &lt;span class="str"&gt;'bonnie2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'354-555-0130'&lt;/span&gt;),
(99, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Eugene'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kogan'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Mountain
Bike Center'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'eugene2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'136-555-0134'&lt;/span&gt;),
(100, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Kirk'&lt;/span&gt;, &lt;span class="str"&gt;'T'&lt;/span&gt;, &lt;span class="str"&gt;'King'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Up-To-Date
Sports'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'kirk2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'979-555-0163'&lt;/span&gt;),
(101, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'William'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Conner'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Urban
Sports Emporium'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'william1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'383-555-0111'&lt;/span&gt;),
(102, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Linda'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Leste'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'National
Manufacturing'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\garrett1'&lt;/span&gt;, &lt;span class="str"&gt;'linda7@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'493-555-0134'&lt;/span&gt;),
(106, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Andrea'&lt;/span&gt;, &lt;span class="str"&gt;'A.'&lt;/span&gt;, &lt;span class="str"&gt;'Thomsen'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'West
Side Mart'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jae0'&lt;/span&gt;, &lt;span class="str"&gt;'andrea1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'1
(11) 500 555-0120'&lt;/span&gt;), (109, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Daniel'&lt;/span&gt;, &lt;span class="str"&gt;'P.'&lt;/span&gt;, &lt;span class="str"&gt;'Thompson'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Travel
Sports'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\pamela0'&lt;/span&gt;, &lt;span class="str"&gt;'daniel2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'247-555-0197'&lt;/span&gt;),
(110, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Kendra'&lt;/span&gt;, &lt;span class="str"&gt;'N.'&lt;/span&gt;, &lt;span class="str"&gt;'Thompson'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Vintage
Sport Boutique'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\david8'&lt;/span&gt;, &lt;span class="str"&gt;'kendra0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'464-555-0188'&lt;/span&gt;),
(111, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Scott'&lt;/span&gt;, &lt;span class="str"&gt;'A.'&lt;/span&gt;, &lt;span class="str"&gt;'Colvin'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Westside
Cycle Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'scott1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'119-555-0144'&lt;/span&gt;),
(168, &lt;span class="str"&gt;'Sr.'&lt;/span&gt;, &lt;span class="str"&gt;'Luis'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Bonifaz'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Economy
Bikes Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\linda3'&lt;/span&gt;, &lt;span class="str"&gt;'luis0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'688-555-0113'&lt;/span&gt;),
(169, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Brenda'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Diaz'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Downtown
Hotel'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'brenda2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'147-555-0192'&lt;/span&gt;),
(172, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Gabriele'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Dickmann'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Certified
Sports Supply'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'gabriele0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'835-555-0116'&lt;/span&gt;),
(173, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Rudolph'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Dillon'&lt;/span&gt;, &lt;span class="str"&gt;'Sr.'&lt;/span&gt;, &lt;span class="str"&gt;'Sundry
Sporting Goods'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'rudolph0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'722-555-0169'&lt;/span&gt;),
(174, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Michael'&lt;/span&gt;, &lt;span class="str"&gt;'L.'&lt;/span&gt;, &lt;span class="str"&gt;'Bohling'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Toy
Manufacturing Inc'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\garrett1'&lt;/span&gt;, &lt;span class="str"&gt;'michael12@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'838-555-0147'&lt;/span&gt;),
(178, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Dick'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Dievendorff'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Rampart
Amusement Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jae0'&lt;/span&gt;, &lt;span class="str"&gt;'dick1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'1
(11) 500 555-0193'&lt;/span&gt;), (180, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Nicky'&lt;/span&gt;, &lt;span class="str"&gt;'E.'&lt;/span&gt;, &lt;span class="str"&gt;'Chesnut'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Full-Service
Bike Store'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\michael9'&lt;/span&gt;, &lt;span class="str"&gt;'nicky0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'264-555-0164'&lt;/span&gt;),
(181, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Michael'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Lee'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Family
Entertainment Center'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\pamela0'&lt;/span&gt;, &lt;span class="str"&gt;'michael18@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'396-555-0139'&lt;/span&gt;),
(182, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Stanley'&lt;/span&gt;, &lt;span class="str"&gt;'A.'&lt;/span&gt;, &lt;span class="str"&gt;'Alan'&lt;/span&gt;, &lt;span class="str"&gt;'Jr.'&lt;/span&gt;, &lt;span class="str"&gt;'Another
Bicycle Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\david8'&lt;/span&gt;, &lt;span class="str"&gt;'stanley0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'156-555-0126'&lt;/span&gt;),
(183, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Yao-Qiang'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Cheng'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'This
Area Sporting Goods'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'yao-qiang0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'344-555-0181'&lt;/span&gt;),
(184, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Marjorie'&lt;/span&gt;, &lt;span class="str"&gt;'M.'&lt;/span&gt;, &lt;span class="str"&gt;'Lee'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Go-cart
and Bike Specialists'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'marjorie0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'306-555-0166'&lt;/span&gt;),
(185, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Sandeep'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Kaliyath'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Weekend
Bike Tours'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'sandeep1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'495-555-0113'&lt;/span&gt;),
(186, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Pei'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Chow'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Thrilling
Bike Tours'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\linda3'&lt;/span&gt;, &lt;span class="str"&gt;'pei0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'789-555-0184'&lt;/span&gt;),
(190, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Mark'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Lee'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Racing
Partners'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'mark5@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'371-555-0112'&lt;/span&gt;),
(191, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Sandra'&lt;/span&gt;, &lt;span class="str"&gt;'T.'&lt;/span&gt;, &lt;span class="str"&gt;'Kitt'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Non-Slip
Pedal Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'sandra2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'303-555-0117'&lt;/span&gt;),
(192, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Hao'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Chen'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Nuts
and Bolts Mfg.'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\garrett1'&lt;/span&gt;, &lt;span class="str"&gt;'hao1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'117-555-0173'&lt;/span&gt;),
(196, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Jolie'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Lenehan'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Exhibition
Showroom'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jae0'&lt;/span&gt;, &lt;span class="str"&gt;'jolie0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'1
(11) 500 555-0126'&lt;/span&gt;), (197, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Diane'&lt;/span&gt;, &lt;span class="str"&gt;'F.'&lt;/span&gt;, &lt;span class="str"&gt;'Krane'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Fabrikam
Inc., West'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\michael9'&lt;/span&gt;, &lt;span class="str"&gt;'diane4@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'224-555-0126'&lt;/span&gt;),
(198, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Payton'&lt;/span&gt;, &lt;span class="str"&gt;'P.'&lt;/span&gt;, &lt;span class="str"&gt;'Benson'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Field
Trip Inc'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\michael9'&lt;/span&gt;, &lt;span class="str"&gt;'payton0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'528-555-0183'&lt;/span&gt;),
(199, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Roger'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Lengel'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Authorized
Bike Sales and Rental'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\pamela0'&lt;/span&gt;, &lt;span class="str"&gt;'roger1@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'947-555-0143'&lt;/span&gt;),
(200, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Peggy'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Justice'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Basic
Bike Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\david8'&lt;/span&gt;, &lt;span class="str"&gt;'peggy0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'170-555-0189'&lt;/span&gt;),
(201, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Edna'&lt;/span&gt;, &lt;span class="str"&gt;'J.'&lt;/span&gt;, &lt;span class="str"&gt;'Benson'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Unsurpassed
Bikes'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'edna0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'789-555-0189'&lt;/span&gt;),
(202, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'A.'&lt;/span&gt;, &lt;span class="str"&gt;'Francesca'&lt;/span&gt;, &lt;span class="str"&gt;'Leonetti'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Two-Seater
Bikes'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jillian0'&lt;/span&gt;, &lt;span class="str"&gt;'a0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'645-555-0193'&lt;/span&gt;),
(203, &lt;span class="str"&gt;'Ms.'&lt;/span&gt;, &lt;span class="str"&gt;'Jean'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Jordan'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Separate
Parts Corporation'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'jean3@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'207-555-0129'&lt;/span&gt;),
(204, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Ido'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Ben-Sachar'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Traction
Tire Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\linda3'&lt;/span&gt;, &lt;span class="str"&gt;'ido0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'973-555-0112'&lt;/span&gt;),
(205, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Frank'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Mart&amp;shy;nez'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Rally
Master Company Inc'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\shu0'&lt;/span&gt;, &lt;span class="str"&gt;'frank5@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'171-555-0147'&lt;/span&gt;),
(208, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Steve'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Masters'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Professional
Cyclists'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'steve2@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'154-555-0115'&lt;/span&gt;),
(209, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Robert'&lt;/span&gt;, &lt;span class="str"&gt;'E.'&lt;/span&gt;, &lt;span class="str"&gt;'Jones'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Purple
Bicycle Company'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\jos‚1'&lt;/span&gt;, &lt;span class="str"&gt;'robert6@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'595-555-0131'&lt;/span&gt;),
(210, &lt;span class="str"&gt;'Mr.'&lt;/span&gt;, &lt;span class="str"&gt;'Josh'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Barnhill'&lt;/span&gt;, &lt;span class="str"&gt;''&lt;/span&gt;, &lt;span class="str"&gt;'Gasless
Cycle Shop'&lt;/span&gt;, &lt;span class="str"&gt;'adventure-works\garrett1'&lt;/span&gt;, &lt;span class="str"&gt;'josh0@adventure-works.com'&lt;/span&gt;, &lt;span class="str"&gt;'584-555-0192'&lt;/span&gt;); &lt;span class="kwrd"&gt;GO&lt;/span&gt; INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; [dbo].[&lt;span class="kwrd"&gt;Order&lt;/span&gt;](
[CustomerID], [OrderTotal]) &lt;span class="kwrd"&gt;VALUES&lt;/span&gt; (55,213.56), (55,31.56),
(55,3412.56), (78,312.56), (78,255.78), (79,112.12), (79,555.00), (79,765.12), (79,967.88),
(101,903.04), (101,512.43), (110,1250.00), (110,325.68), (204,112.99), (205,107.43),
(205,895.21) &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 7 – Query Federation &lt;span class="kwrd"&gt;Data&lt;/span&gt; &lt;span class="kwrd"&gt;with&lt;/span&gt; Filtering &lt;span class="kwrd"&gt;off&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="rem"&gt;--
Route connection to the 1 Federation Member (aka shard)&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
CustomerFederation(cid=100) &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET, FILTERING=&lt;span class="kwrd"&gt;OFF&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; db_name()
[db_name], db_id() [db_id] &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_member_distributions &lt;span class="rem"&gt;--
Federatation ranges&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; f.name, fmc.federation_id,
fmc.member_id, fmc.range_low, fmc.range_high &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federations
f &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.federation_member_distributions fmc &lt;span class="kwrd"&gt;ON&lt;/span&gt; f.federation_id=fmc.federation_id &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; fmc.federation_id,
fmc.range_low; &lt;span class="rem"&gt;-- User tables count (federated &amp;amp; reference)&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; fmc.member_id,fmc.range_low,fmc.range_high,&lt;span class="str"&gt;'['&lt;/span&gt; +
s.name + &lt;span class="str"&gt;'].['&lt;/span&gt; + t.name + &lt;span class="str"&gt;']'&lt;/span&gt; [name],
p.row_count &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.tables t &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.schemas
s &lt;span class="kwrd"&gt;ON&lt;/span&gt; t.schema_id=s.schema_id &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.dm_db_partition_stats
p &lt;span class="kwrd"&gt;ON&lt;/span&gt; t.object_id=p.object_id &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; sys.federation_member_distributions
fmc &lt;span class="kwrd"&gt;ON&lt;/span&gt; 1=1 &lt;span class="kwrd"&gt;WHERE&lt;/span&gt; p.index_id=1 &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; s.name,
t.name &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="rem"&gt;-- Query customer table for
high/low Federated Keys&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;MIN&lt;/span&gt;(CustomerID)
[CustomerID Low], &lt;span class="kwrd"&gt;MAX&lt;/span&gt;(CustomerID) [CustomerID High] &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Customer &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 8 – Perform Federations Split &lt;span class="kwrd"&gt;Operation&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
ROOT &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;ALTER&lt;/span&gt; FEDERATION
CustomerFederation SPLIT &lt;span class="kwrd"&gt;AT&lt;/span&gt; (cid=100) &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 9 – Wait &lt;span class="kwrd"&gt;for&lt;/span&gt; Split &lt;span class="kwrd"&gt;to&lt;/span&gt; complete
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
--&lt;span class="kwrd"&gt;View&lt;/span&gt; the background Federation operations &lt;span class="kwrd"&gt;table&lt;/span&gt; (Rinse &lt;span class="kwrd"&gt;and&lt;/span&gt; Repeat
Until Complete) &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; percent_complete, * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_federation_operations &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 10 – Query Federation Members (again) &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="rem"&gt;--
Route connection to the Federation Root&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
ROOT &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federations &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_member_distributions &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; federation_id,
range_low; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="rem"&gt;-- Route connection to the
2nd Federation Member (aka shard)&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
CustomerFederation(cid=100) &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET, FILTERING=&lt;span class="kwrd"&gt;OFF&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; --Query
metadata &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; db_name() [db_name], db_id() [db_id] &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.federation_member_distributions &lt;span class="rem"&gt;--
Query customer table for high/low Federated Keys&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;MIN&lt;/span&gt;(CustomerID)
[CustomerID Low], &lt;span class="kwrd"&gt;MAX&lt;/span&gt;(CustomerID) [CustomerID High] &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Customer
--&lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;all&lt;/span&gt; &lt;span class="kwrd"&gt;rows&lt;/span&gt; &lt;span class="kwrd"&gt;from&lt;/span&gt; Customers &lt;span class="kwrd"&gt;in&lt;/span&gt; this
member &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Customer &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 11 – Query &lt;span class="kwrd"&gt;data&lt;/span&gt; &lt;span class="kwrd"&gt;from&lt;/span&gt; Federation
member &lt;span class="kwrd"&gt;with&lt;/span&gt; Filtering &lt;span class="kwrd"&gt;On&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
--Route &lt;span class="kwrd"&gt;to&lt;/span&gt; the 2nd federation but &lt;span class="kwrd"&gt;with&lt;/span&gt; filtering &lt;span class="kwrd"&gt;on&lt;/span&gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
CustomerFederation(cid=100) &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET, FILTERING=&lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="rem"&gt;--
Query customer table for high/low Federated Keys&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;MIN&lt;/span&gt;(CustomerID)
[CustomerID Low], &lt;span class="kwrd"&gt;MAX&lt;/span&gt;(CustomerID) [CustomerID High] &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Customer
--&lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;all&lt;/span&gt; &lt;span class="kwrd"&gt;rows&lt;/span&gt; &lt;span class="kwrd"&gt;from&lt;/span&gt; Customers &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Customer &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Task 12 – &lt;span class="kwrd"&gt;Using&lt;/span&gt; the SSMS Tooling &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="rem"&gt;--
List federation members&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;
Perform Additional Split &lt;span class="kwrd"&gt;Operation&lt;/span&gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;span class="kwrd"&gt;USE&lt;/span&gt; FEDERATION
ROOT &lt;span class="kwrd"&gt;WITH&lt;/span&gt; RESET &lt;span class="kwrd"&gt;GO&lt;/span&gt; &lt;span class="kwrd"&gt;ALTER&lt;/span&gt; FEDERATION
CustomerFederation SPLIT &lt;span class="kwrd"&gt;AT&lt;/span&gt; (cid=150) &lt;span class="kwrd"&gt;GO&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;to&lt;/span&gt; Deck&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;span class="rem"&gt;--&lt;/span&gt; &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
The next item are the fan-out queries I showed. These should be used in conjunction
with the Fan Out Query demo tool that can be found at: &lt;a title="http://federationsutility-scus.cloudapp.net/" href="http://federationsutility-scus.cloudapp.net/"&gt;http://federationsutility-scus.cloudapp.net/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;




&lt;span class="rem"&gt;-- FANOUT SAMPLES. Execute using Fanout
tool&lt;/span&gt; --Simple &lt;span class="kwrd"&gt;Count&lt;/span&gt; &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;each&lt;/span&gt; member &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;count&lt;/span&gt;(*) &lt;span class="kwrd"&gt;from&lt;/span&gt; Customer
--Simple &lt;span class="kwrd"&gt;Select&lt;/span&gt; * &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; Customer &lt;span class="rem"&gt;--
ALIGNED QUERY with ALIGNED AGGREGATES&lt;/span&gt; &lt;span class="rem"&gt;-- get total orders
value by customer having &amp;gt; $1000&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid, &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; customer &lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;] &lt;span class="kwrd"&gt;on&lt;/span&gt; customer.customerid=[&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid &lt;span class="kwrd"&gt;GROUP&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid &lt;span class="kwrd"&gt;HAVING&lt;/span&gt; &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal)&amp;gt;1000
--OK &lt;span class="kwrd"&gt;to&lt;/span&gt; &lt;span class="kwrd"&gt;add&lt;/span&gt; &lt;span class="kwrd"&gt;some&lt;/span&gt; more
detail &lt;span class="kwrd"&gt;from&lt;/span&gt; customer &lt;span class="kwrd"&gt;table&lt;/span&gt;. &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; firstname,lastname,companyname,[&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid, &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; customer &lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;] &lt;span class="kwrd"&gt;on&lt;/span&gt; customer.customerid=[&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid &lt;span class="kwrd"&gt;GROUP&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid,firstname,lastname,companyname &lt;span class="kwrd"&gt;HAVING&lt;/span&gt; &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal)&amp;gt;1000
--So now &lt;span class="kwrd"&gt;to&lt;/span&gt; &lt;span class="kwrd"&gt;group&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; Company
name. i.e. Non Aligned query &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; companyname, &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal) &lt;span class="kwrd"&gt;as&lt;/span&gt; ordertotal &lt;span class="kwrd"&gt;FROM&lt;/span&gt; customer &lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;] &lt;span class="kwrd"&gt;on&lt;/span&gt; customer.customerid=[&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid &lt;span class="kwrd"&gt;GROUP&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; companyname &lt;span class="kwrd"&gt;HAVING&lt;/span&gt; &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal)&amp;gt;1000
--We need a post processing step &lt;span class="kwrd"&gt;to&lt;/span&gt; &lt;span class="kwrd"&gt;aggregate&lt;/span&gt; the
aggregates &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; companyname, &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; #&lt;span class="kwrd"&gt;Table&lt;/span&gt; &lt;span class="kwrd"&gt;GROUP&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; companyname &lt;span class="rem"&gt;--
ALIGNED QUERY with NONE-ADDITIVE AGGREGATES&lt;/span&gt; &lt;span class="rem"&gt;-- avg order
size per customer&lt;/span&gt; &lt;span class="rem"&gt;-- OK because we are aggregating within
the attomic unit&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; firstname,lastname,companyname,[&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid, &lt;span class="kwrd"&gt;AVG&lt;/span&gt;(ordertotal) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; customer &lt;span class="kwrd"&gt;inner&lt;/span&gt; &lt;span class="kwrd"&gt;join&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;] &lt;span class="kwrd"&gt;on&lt;/span&gt; customer.customerid=[&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid &lt;span class="kwrd"&gt;GROUP&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;].customerid,firstname,lastname,companyname
--NON-ALIGNED QUERY &lt;span class="kwrd"&gt;with&lt;/span&gt; NON-ADDITIVE &lt;span class="kwrd"&gt;AGGREGATE&lt;/span&gt; --&lt;span class="kwrd"&gt;avg&lt;/span&gt; &lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;size&lt;/span&gt; --#FAIL &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;AVG&lt;/span&gt;(ordertotal) &lt;span class="kwrd"&gt;FROM&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;] &lt;span class="rem"&gt;--
success -- &lt;/span&gt; &lt;span class="rem"&gt;-- Average: get sum and count instead of avg&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(ordertotal)
tot, &lt;span class="kwrd"&gt;COUNT&lt;/span&gt;(*) cnt &lt;span class="kwrd"&gt;FROM&lt;/span&gt; [&lt;span class="kwrd"&gt;order&lt;/span&gt;] &lt;span class="rem"&gt;--
Summary Query: &lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(tot)/&lt;span class="kwrd"&gt;SUM&lt;/span&gt;(cnt)
average &lt;span class="kwrd"&gt;FROM&lt;/span&gt; #&lt;span class="kwrd"&gt;Table&lt;/span&gt; --&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;Back &lt;span class="kwrd"&gt;to&lt;/span&gt; Deck&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;span class="rem"&gt;--&lt;/span&gt; &lt;span class="rem"&gt;--
deploy a new reference table and add some data&lt;/span&gt; &lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; tab1(dbname
nvarchar(128), secs &lt;span class="kwrd"&gt;int&lt;/span&gt;, msecs &lt;span class="kwrd"&gt;int&lt;/span&gt;, &lt;span class="kwrd"&gt;primary&lt;/span&gt; &lt;span class="kwrd"&gt;key&lt;/span&gt; (dbname,
secs, msecs)); INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; tab1 &lt;span class="kwrd"&gt;values&lt;/span&gt;(db_name(),
datepart(ss, getdate()), datepart(ms, getdate())); &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;span class="kwrd"&gt;FROM&lt;/span&gt; tab1; &lt;span class="rem"&gt;--
update stats on all members&lt;/span&gt; &lt;span class="kwrd"&gt;EXEC&lt;/span&gt; sp_updatestats &lt;span class="rem"&gt;--
#session per member&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; db_name() dbname, &lt;span class="kwrd"&gt;count&lt;/span&gt;(a.session_id)
session_count &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_exec_sessions a &lt;span class="rem"&gt;--
#session per member&lt;/span&gt; &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;span class="kwrd"&gt;TOP&lt;/span&gt; 5
db_name(),query_stats.query_hash &lt;span class="kwrd"&gt;AS&lt;/span&gt; "Query Hash", &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(query_stats.total_worker_time)
/ &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(query_stats.execution_count) &lt;span class="kwrd"&gt;AS&lt;/span&gt; "&lt;span class="kwrd"&gt;Avg&lt;/span&gt; CPU &lt;span class="kwrd"&gt;Time&lt;/span&gt;", &lt;span class="kwrd"&gt;MIN&lt;/span&gt;(query_stats.statement_text) &lt;span class="kwrd"&gt;AS&lt;/span&gt; "&lt;span class="kwrd"&gt;Statement&lt;/span&gt; Text" &lt;span class="kwrd"&gt;FROM&lt;/span&gt; (&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; QS.*, &lt;span class="kwrd"&gt;SUBSTRING&lt;/span&gt;(ST.text,
(QS.statement_start_offset/2) + 1, ((&lt;span class="kwrd"&gt;CASE&lt;/span&gt; statement_end_offset &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; -1 &lt;span class="kwrd"&gt;THEN&lt;/span&gt; DATALENGTH(ST.text) &lt;span class="kwrd"&gt;ELSE&lt;/span&gt; QS.statement_end_offset &lt;span class="kwrd"&gt;END&lt;/span&gt; -
QS.statement_start_offset)/2) + 1) &lt;span class="kwrd"&gt;AS&lt;/span&gt; statement_text &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_exec_query_stats &lt;span class="kwrd"&gt;AS&lt;/span&gt; QS &lt;span class="kwrd"&gt;CROSS&lt;/span&gt; APPLY
sys.dm_exec_sql_text(QS.sql_handle) &lt;span class="kwrd"&gt;as&lt;/span&gt; ST) &lt;span class="kwrd"&gt;as&lt;/span&gt; query_stats &lt;span class="kwrd"&gt;GROUP&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; query_stats.query_hash &lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; 2 &lt;span class="kwrd"&gt;DESC&lt;/span&gt;; &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
As always… feel free to flick across comments or questions.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=4a1e12ab-f8fc-4688-9df2-3af05c90e102" /&gt;</content>
  </entry>
  <entry>
    <title>Microsoft Dynamics Connector &amp;ldquo;Unable to Connect&amp;rdquo;</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2012/05/02/MicrosoftDynamicsConnectorLdquoUnableToConnectrdquo.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,b540f0bb-006e-4b6d-930f-e5d134d9ab9f.aspx</id>
    <published>2012-05-03T08:04:01.5765605+12:00</published>
    <updated>2012-05-03T08:04:01.5765605+12:00</updated>
    <category term="Dynamics AX" label="Dynamics AX" scheme="http://www.syringe.net.nz/CategoryView,category,Dynamics%2BAX.aspx" />
    <category term="Dynamics CRM" label="Dynamics CRM" scheme="http://www.syringe.net.nz/CategoryView,category,Dynamics%2BCRM.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Just a quick post for those who make strike the error with the Dynamics Connector.
There is a issue if you have installed the WIndows Azure AppFabric SDK on the same
box. Uninstall the AppFabric SDK and you will be golden.
</p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=b540f0bb-006e-4b6d-930f-e5d134d9ab9f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Taking Nice Party Photos</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/12/13/TakingNicePartyPhotos.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,4ee51600-c978-47cb-929a-abba317aafcd.aspx</id>
    <published>2011-12-14T08:40:21.5978095+13:00</published>
    <updated>2011-12-14T08:40:21.5978095+13:00</updated>
    <category term="Intergen" label="Intergen" scheme="http://www.syringe.net.nz/CategoryView,category,Intergen.aspx" />
    <category term="Photography" label="Photography" scheme="http://www.syringe.net.nz/CategoryView,category,Photography.aspx" />
    <category term="Rambles" label="Rambles" scheme="http://www.syringe.net.nz/CategoryView,category,Rambles.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
So I’m a big fan of taking available light photos. This is particularly good fun at
Wedding parties and Christmas parties.
</p>
        <p>
I took a bunch of photos at the <a href="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011">Intergen
Office Christmas party</a> last Friday night and I’ve had a bunch of people ask “what
camera etc… were you using”. SO I thought I’d take a few minutes and write up a post
with some notes on taking available light party photos.
</p>
        <p>
          <a href="http://cauld.smugmug.com/#1624585378_X3HM9gH-A-LB">
            <img title="" alt="" src="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/i-X3HM9gH/0/M/MG8753-M.jpg" />
          </a>
        </p>
        <p>
So the trick to taking nice party photos is not using a flash. To do this you need
a couple of things;
</p>
        <ol>
          <li>
A camera that has a decent High ISO noise level.<br />
ISO is an interesting term in that it goes back to the film days. The ISO (International
Standards Organization) measure basically set a standard for the sensitivity of film
to light. A high ISO film required less light to create an image, but, a high ISO
film also typically produced photos with much more noticeable <a href="http://www.google.co.nz/url?sa=t&amp;rct=j&amp;q=film%20grain&amp;source=web&amp;cd=1&amp;ved=0CCcQFjAA&amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FFilm_grain&amp;ei=rGXmTsadFOuQiAfopem1BQ&amp;usg=AFQjCNHDk7JxHxujG5fGq_jXebwqc-DlZQ">film
grain</a>. In the digital age we still use the term ISO but this time it’s basically
referring to the amount of light required by the sensor in order to create an image;
while the ISO of a roll of film was fixed we can change the camera ISO (sensitivity)
at will because it’s basically just turning up the Gain (a camera sensor is effectively
an analog-digital interface). If you’ve ever played with other things that have a
Gain knob you’ll know if you put a small signal in and try and use the gain knob to
boost it things can get a bit ugly- so it is with camera ISO if you turn the gain
up too much things get <a href="http://en.wikipedia.org/wiki/Image_noise">noisy</a>.<br />
So to get the nice party photos with available light (no flash and as such relying
on not much light) you need a camera that lets you turn the gain up with out getting
too noisy. The original ‘super amazing’ low light Camera was probably the Canon EOS
5D Mk II which is now about 3 years old. Indeed it is this camera that I used for
most of the shots. It’s an expensive ($5k) body, but, over the past few years that
super high ISO technology has filtered down such that you can get pretty decent looking
shots from most $1000 bodies at ISO of 1600-6400 (to give you an idea of how revolutionary
this is it would be very rare for anyone other than a professional to shoot film higher
than ISO400 back in the day. Thus the modern digital cameras are several times more
sensitive for the same level of noise than film was ever able to achieve)<br />
I’m a Canon person so that’s where my recommendations will sit and I think there’s
not a lot wrong with the Canon 600D body in the <a href="http://pricespy.co.nz/search.php?query=Canon+600D">$1000
price point</a>. Take a look at these <a href="http://www.dpreview.com/reviews/canoneos600d/page17.asp">high
ISO shots from DPReview</a>. There will be similarly good options from Nikon in the
price point which people can point out in the comments. The benefit of getting the
$1000 body is you have more moolah to spend on lenses…</li>
          <li>
The second thing you’ll need is a lens with a large maximum aperture.<br />
You can tell the maximum aperture of your lens by reading it off the lens. It will
be expressed as a ratio on the front ring e.g. 1:1.8 but it’s typically shortened
in conversation and marketing to just the denominator. For the tech boffins the F-Stop
(Aperture) is basically expressed as a <a href="http://en.wikipedia.org/wiki/Aperture">ratio
of the focal length of the lens</a>. The <strong>lower</strong> the F stop number
the <strong>larger</strong> the aperture- a bit counter-intuitive I know.<br />
For a zoom lens about the largest F stop you’ll get is F2.8 and even then you’ll be
paying big bikkies and they weight a ton. There are a few shots in the party photos
that are taken using an 70-200mm F2.8 lens.<br />
What you really want is a ‘prime’ lens. This is a lens with no zoom. Most of the shots
taken in the party set above were taken with a Sigma 50mm F1.4 lens (this is a mid-range
prime lens in terms of cost) but, for the most part I have it ‘stopped down’ to F1.8.
This is for two reasons 1) wide open a mid-range lens like this can lose a bit of
sharpness particularly around the edges and 2) A side effect of a large aperture is
a very shallow depth-of-field; in the case of F1.4 on a 5D MkII with the subject at
2m only 11cm of depth will be in sharp focus. You’ll see this shallow depth of field
in most of the low light photos as either a <a href="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/20512915_cRTC4m#1624579665_J2TdL9s-A-LB">nice
blurry background</a> or as an annoying fact that <a href="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/20512915_cRTC4m#1624586697_4nZPRVk-A-LB">of
two people in the photo only one is in focus</a>.<br />
So. Which lens to get. This is a place where Canon has a real advantage. If you are
not ken to spend much money there is a Canon lens, the <a href="http://pricespy.co.nz/search.php?query=Canon+50mm+f1.8+MKII">50mm
F1.8 MkII</a> (plastic fantastic) that for under $200 will let you take nice party
photos too. To me this is almost as good a reason as any to prefer Canon over Nikon
at the cheap pricepoint cameras.<br />
If you have a bit more money to spend both the Canon and Sigma 35mm/50mm/85mm primes
are great for under $1000.<br />
And finally if you have plenty of money go buy a Canon 85m F1.2 for <a href="http://www.ogle.co.nz/Street-Scenes/Wellington/2590831_8PpsD8#437309746_9HyvC-A-LB">shots
like this one I took on a borrowed lens</a>.</li>
        </ol>
        <p>
So this post became a bit of a ramble. To answer the more direct question of what
I used for the party photos.
</p>
        <p>
Canon 7D Body (early evening) with a Canon 24-105 F4 zoom<br />
Canon 5D (low light) with a mixture of Sigma 50mm 1.4, Carl Zeiss 85mm 1.4 and Canon
70-200mm 2.8
</p>
        <p>
          <a href="http://cauld.smugmug.com/#1624594992_Z34cqdW-A-LB">
            <img title="" alt="" src="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/i-Z34cqdW/0/M/MG8777-M.jpg" />
          </a> <a href="http://cauld.smugmug.com/#1624584616_vFPB2WV-A-LB"><img title="" alt="" src="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/i-vFPB2WV/0/M/MG8752-2-M.jpg" /></a> \
</p>
        <p>
          <a href="http://cauld.smugmug.com/#1624597187_wQJtnkn-A-LB">
            <img title="" alt="" src="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/i-wQJtnkn/0/M/MG8792-M.jpg" />
          </a>
        </p>
        <p>
          <a href="http://cauld.smugmug.com/#1624596840_F7CVpkp">
            <img src="http://cauld.smugmug.com/Parties/Intergen-XMas-Party-2011/i-F7CVpkp/0/XL/MG8790-XL.jpg" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=4ee51600-c978-47cb-929a-abba317aafcd" />
      </div>
    </content>
  </entry>
  <entry>
    <title>What does compulsory Kiwisaver @ 9% do to small business startup capital</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/10/27/WhatDoesCompulsoryKiwisaver9DoToSmallBusinessStartupCapital.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,f76c5ddb-9f65-4588-af65-5fb14f8a199d.aspx</id>
    <published>2011-10-27T20:41:04.4307352+13:00</published>
    <updated>2011-10-27T20:43:05.8088234+13:00</updated>
    <category term="Business Building" label="Business Building" scheme="http://www.syringe.net.nz/CategoryView,category,Business%2BBuilding.aspx" />
    <category term="Politics" label="Politics" scheme="http://www.syringe.net.nz/CategoryView,category,Politics.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’ll start this post by stating that I am generally supportive of Kiwisaver as a scheme.
I deeply regret the decision taken by the national government to remove the ‘carrot’
from the scheme and would much sooner have seen them scrap the bat-shit crazy interest
free student loans rort to make their numbers.
</p>
        <p>
So I am a little torn with the new Labour policy for compulsory Kiwisaver. I think
there are a few things we can all agree on
</p>
        <ol>
          <li>
            <div align="left">It will suppress wage growth. DPF posts on that <a href="http://www.kiwiblog.co.nz/2011/10/labours_wage_reduction_policy.html">here</a> including
a Labour party admission of such.
</div>
          </li>
          <li>
            <div align="left">Kiwisaver is a "low risk” or conservative investment. Even if you
pick the <a href="http://www.forbar.co.nz/page3.asp#personal_choice">Forsyth Barr
build your own scheme</a> and load up on equities you’ll still be buying bluechips
and not speccy mining shares.
</div>
          </li>
          <li>
            <div align="left">9% of pre-tax income is a relative SHITLOAD of money for most people
and would, I suspect, represent the entirety of investment income for  the 99%
(post written about the time the smelly hippies were occupying Aotea Square)
</div>
          </li>
          <li>
            <div align="left">Saving and investing (rather than spending) is a good thing and
as a country we don’t really do enough of it
</div>
          </li>
          <li>
            <div align="left">At 9% of pre-tax income Kiwisaver will impact the common kiwi savings
vehicle of the family home. People will be slower at paying off their mortgages (yes
even will all the mortgage diversion stuff)
</div>
          </li>
          <li>
            <div align="left">Banks aren’t particularly interested in letting you gear against
your Kiwisaver assets
</div>
          </li>
        </ol>
        <p align="left">
So beyond all the usual stuff that’s been discussed today I have one really major
concern with compulsory Kiwisaver
</p>
        <p align="left">
It’s going to knock the stuffing out of small business startup capital. Basically
the money that many people would have put into a liquid investment such that they
could draw down to start a business will instead be locked away in a conservative
investment vehicle until they are 65. Now starting your own business is risky to be
sure, but, are we really saying that someone on $80k in a solid job should be denied
the opportunity to put their money aside to invest in their own venture?
</p>
        <p align="left">
What do others think?
</p>
        <p align="left">
People will point to the success of compulsory super at these kinds of pre-tax levels
in Australia, but, the Australian scheme is quite different to Kiwisaver and in particular
their <a href="http://www.moneysmart.gov.au/superannuation-and-retirement/self-managed-super">Self
Managed Super Funds</a> provide some relief to the above concerns. 
</p>
        <p align="left">
The argument about whether small business owners can bear the burden of these Kiwisaver
payments is somewhat moot if they were never in a position to start their small business
in the first place.
</p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=f76c5ddb-9f65-4588-af65-5fb14f8a199d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Nice Cheap Helmet Cameras</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/09/21/NiceCheapHelmetCameras.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,325bfc4e-af8d-437d-87bf-9d0e65569bce.aspx</id>
    <published>2011-09-22T10:18:59.3744402+12:00</published>
    <updated>2011-09-22T10:18:59.3744402+12:00</updated>
    <category term="Adventure Sports" label="Adventure Sports" scheme="http://www.syringe.net.nz/CategoryView,category,Adventure%2BSports.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
So unless you’ve been living in a cave you’ll be aware of how rad helmet cams are
for the adventure sports inclined amongst us. I held off buying one for quite a long
time because they have been FREAKING expensive. The other issue is that the ‘industry
standard’ GoPro HD makes you look like a total mongtard when you are wearing it.
</p>
        <p>
          <img src="http://www.google.com/url?source=imglanding&amp;ct=img&amp;q=http://walkiberia.com/wp-content/uploads/2011/07/Picture-37-300x244.png&amp;sa=X&amp;ei=fGF6TsO1BcyviQeCpfT_Dw&amp;ved=0CAcQ8wc&amp;usg=AFQjCNF29konB-dsxUF-UBkLwW4b_BdloA" width="300" height="244" />
          <br />
          <em>Figure 1: How to look like a gaper mong!</em>
        </p>
        <p>
So I really like the look of the cameras from <a href="http://contour.com/">Contour</a>.
They have recently announced the <a href="http://contour.com/products/contour-roam">Contour
ROAM</a> which is their new budget camera at $199. But, this post isn’t about that
new camera. It’s nice and all with more waterproofing that the original ContourHD,
but, it lacks the 720p 60fps mode which I think is critical to nice footage in fast
moving environments.
</p>
        <p>
Instead this post is about the CountourHD; because it’s basically been replaced by
these newer models it’s available super cheap. It supports full HD 1080p as well as
the important 720p at 60fps mode.
</p>
        <p>
          <a href="http://tinyurl.com/contour-backcountry">
            <img src="http://www.google.com/url?source=imglanding&amp;ct=img&amp;q=http://www.cameratown.com/assets/news/large/Vholdr_ContourHD1080P.jpg&amp;sa=X&amp;ei=BmJ6TuyKOq-aiAevwe0M&amp;ved=0CAYQ8wc4YQ&amp;usg=AFQjCNHwwFg7EpB2tFVpAr2UT-lNLhR9FQ" width="240" height="207" />
          </a>
        </p>
        <p>
          <em>Figure 2: How to not look like a gaper mong!</em>
        </p>
        <p>
It can be had at Backcountry at the moment for about US$140 (<a title="http://tinyurl.com/contour-backcountry" href="http://tinyurl.com/contour-backcountry">http://tinyurl.com/contour-backcountry</a>).
If you’ve been in the market I think this is the deal to snag! Shipping is a bit to
New Zealand but it’s still waaay cheaper than buying locally. Particularly if you
get a spare battery and a few other things in the same order and/or order with friends.
</p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=325bfc4e-af8d-437d-87bf-9d0e65569bce" />
      </div>
    </content>
  </entry>
  <entry>
    <title>64 Bit Microsoft Office vs 32 Bit Office: 64 Bit is not necessarily &amp;lsquo;better&amp;rsquo;</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/07/18/64BitMicrosoftOfficeVs32BitOffice64BitIsNotNecessarilyLsquobetterrsquo.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,8ac31086-509b-4744-ae3a-27bdc77ee2d8.aspx</id>
    <published>2011-07-19T11:46:41.5494019+12:00</published>
    <updated>2011-07-19T11:49:05.8792761+12:00</updated>
    <category term="Office2010" label="Office2010" scheme="http://www.syringe.net.nz/CategoryView,category,Office2010.aspx" />
    <category term="Windows 7" label="Windows 7" scheme="http://www.syringe.net.nz/CategoryView,category,Windows%2B7.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
In my travels I run into lots of people who are running Microsoft Office 2010 but
many of them are also running the 64 bit version. I thought I’d do a quick post to
discourage this behaviour!
</p>
        <p>
Yes, we’ve had it drilled into us that 64 bit is the future, and, for operating system
installs you do indeed want to be running Windows x64 because you’ve probably got
more than 4GB of RAM in your machine. However, when it comes to applications that
have been specifically compiled for 64 bit I suggest a much greater degree of caution
and reflection before diving in. It is basically a trade-off by way of sacrificing
raw performance for the ability to use more RAM in that application process. What
do I mean by this; Well, there is an overhead in working with 64 bit pointers and
this will mean that you take a performance hit in running the 64 bit application-
see this article for some simple benchmarks <a title="http://www.osnews.com/story/5768" href="http://www.osnews.com/story/5768">http://www.osnews.com/story/5768</a>.
The flip side, however,is that you can then work with a full 64 bit address space
and thus your application can use more than 4GB(ish) of RAM.
</p>
        <p>
So, why do I want to discourage you from installing 64 bit office?   
</p>
        <ol>
          <li>
You probably don’t need that much RAM for a individual Office application.<br />
Unless you are working with extremely large spread sheets in Microsoft Excel it is
unlikely you’ll need to use &gt; a couple of GB of ram for a single Office App.</li>
          <li>
There will be a performance hit.</li>
          <li>
There are significant compatibility issues<br />
If you use Office add-ins and other 3rd party extensions you’ll find that compatibility
with x64 Office is patchy at best.</li>
        </ol>
        <p>
So there you have it. The typical person I se running 64 bit office is the ‘IT Guy’
or enthusiast for whom more bits == more power. This just ain’t the case.
</p>
        <p>
Here is the official Microsoft article on the situation: <a title="http://technet.microsoft.com/en-us/library/ee681792.aspx" href="http://technet.microsoft.com/en-us/library/ee681792.aspx">http://technet.microsoft.com/en-us/library/ee681792.aspx</a></p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=8ac31086-509b-4744-ae3a-27bdc77ee2d8" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Real Venice and Fake Venice</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/06/16/RealVeniceAndFakeVenice.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,2992ef9a-9af8-4502-8c02-355aafc57b3b.aspx</id>
    <published>2011-06-17T04:32:33.3160037+12:00</published>
    <updated>2011-06-17T04:37:03.8754946+12:00</updated>
    <category term="Travel" label="Travel" scheme="http://www.syringe.net.nz/CategoryView,category,Travel.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
So Deb and I were in Vegas at the Venetian this week. Just for shits and giggles we
tried to recreate our photo of real Venice... How did we do for authenticity?
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Real-Venice-and-Fake-Venice_856A/n627910082_3680922_5380_2.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="n627910082_3680922_5380" border="0" alt="n627910082_3680922_5380" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Real-Venice-and-Fake-Venice_856A/n627910082_3680922_5380_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
The Grand Canal in ‘Real Venice’
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Real-Venice-and-Fake-Venice_856A/248873_10150633991850083_627910082_19025035_8112051_n_2.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="248873_10150633991850083_627910082_19025035_8112051_n" border="0" alt="248873_10150633991850083_627910082_19025035_8112051_n" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Real-Venice-and-Fake-Venice_856A/248873_10150633991850083_627910082_19025035_8112051_n_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
The Grand Canal in Fake Venice (Venetian Hotel, Las Vegas)
</p>
        <p>
Trust Deb to ruin it by not wearing the same top!!! Me, ever reliable in my yellow
cool-dry.
</p>
        <p>
Frankly I’m torn. The chlorinated canals in Fake Venice smell much nicer than those
in real Venice…
</p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=2992ef9a-9af8-4502-8c02-355aafc57b3b" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Apple iCloud Running on Windows Azure and Amazon S3</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/06/10/AppleICloudRunningOnWindowsAzureAndAmazonS3.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,94979e2d-6f5f-44d1-b6b0-3b711c2afb47.aspx</id>
    <published>2011-06-11T00:29:01.4335323+12:00</published>
    <updated>2011-06-11T00:29:01.4335323+12:00</updated>
    <category term="Windows Azure" label="Windows Azure" scheme="http://www.syringe.net.nz/CategoryView,category,Windows%2BAzure.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi All, 
</p>
        <p>
Saw this rather interesting snippet come through on the Twitter feed this morning. 
</p>
        <p>
          <a href="http://mobilitydigest.com/icloud-brought-to-you-by-microsoft-and-amazon/">http://mobilitydigest.com/icloud-brought-to-you-by-microsoft-and-amazon/</a>
        </p>
        <p>
Clicking through shows you some partial HTTP messages (some stuff is blurred out) 
</p>
        <p>
          <img title="icloud2" alt="" src="http://www.infiniteapple.net/wp-content/blogs.dir/10/files/2011/06/icloud2.jpg" width="556" height="230" />
        </p>
        <p>
Certainly looks like iCloud is using both Azure Blob storage and S3. 
</p>
        <p>
They are probably using Blob storage for the ability to use Shared Access Signatures
for file upload, but, without seeing the full URL in the HTTP request that’s a bit
of a guess. 
</p>
        <p>
My guess is that the call to the iCloud servers for authorizePut will be fetching
a SAS and then this is being used in the PUT request to the Blob storage endpoint. 
</p>
        <p>
There is a header in there called AuthorizationBSharedKey. I certainly hope that’s
not the storage account shared key for the Azure storage account! But again, without
seeing the full messages I can’t really tell. It’s certainly not a standard Azure
header, but, it does have a somewhat worrying name. 
</p>
        <p>
Anyone able to pull the headers in full for some analysis? chris(at)syringe.net.nz 
</p>
        <p>
Chris <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=94979e2d-6f5f-44d1-b6b0-3b711c2afb47" /></p>
      </div>
    </content>
  </entry>
  <entry>
    <title>Kayaking Paddling the Ottawa River</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/06/10/KayakingPaddlingTheOttawaRiver.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,c70e21a0-61d1-46db-987c-81de7e70e3d6.aspx</id>
    <published>2011-06-10T13:00:52.5597437+12:00</published>
    <updated>2011-06-10T13:05:20.3839597+12:00</updated>
    <category term="Adventure Sports" label="Adventure Sports" scheme="http://www.syringe.net.nz/CategoryView,category,Adventure%2BSports.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
So one of the kayaking items on my bucket list was a trip to the Ottawa River. Just
ticked that one off with a couple of runs over the last couple of days.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:84E294D0-71C9-4bd0-A0FE-95764E0368D9:d4a5345b-343b-40db-8e0e-e554e8bead6b" class="wlWriterEditableSmartContent">
          <a href="http://www.bing.com/maps/default.aspx?v=2&amp;cp=45.7474~-76.70242&amp;lvl=10&amp;style=r&amp;mkt=en-us&amp;FORM=LLWR" id="map-e01d2d6f-1c03-4488-acad-45210ad3ac32" alt="View map" title="View map">
            <img src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/map-c53181dcbcfb.jpg" width="320" height="240" alt="Map picture" />
          </a>
        </div>
        <p>
Didn’t take all that many photos but got a few decent ones of me running The Elevator
Shaft chute at Garvin’s rapid on the Middle Channel. The flow yesterday was 13.0
</p>
        <p>
Here is a MASSIVE panorama of the rapid. Thought I’d upload in all it’s glory for
people who may want to examine it later to plan their lines. Clicky Clicky for the
monster.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/image_thumb.png" width="644" height="231" />
          </a>
        </p>
        <p>
Elevator Shaft is hard River Right. It was a pretty simple drop but it’s got a heap
of rocks in the bottom which kinda freaked me out at first. Someone on the trip who
had run it a heap of times said you don’t hit em, just go for it. So I did.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010206.jpg">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="P1010206" border="0" alt="P1010206" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010206_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010207.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="P1010207" border="0" alt="P1010207" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010207_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010208.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="P1010208" border="0" alt="P1010208" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010208_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010209.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="P1010209" border="0" alt="P1010209" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010209_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010210.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="P1010210" border="0" alt="P1010210" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010210_thumb.jpg" width="244" height="184" />
          </a>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010211.jpg">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="P1010211" border="0" alt="P1010211" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010211_thumb.jpg" width="244" height="184" />
          </a>
        </p>
        <p>
And finally a view looking back up the river. With the Chute we ran on lookers left.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010214.jpg">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="P1010214" border="0" alt="P1010214" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Paddling-the-Ottawa-River_122FB/P1010214_thumb.jpg" width="644" height="484" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=c70e21a0-61d1-46db-987c-81de7e70e3d6" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Combining Files from Different Sports Watches using SportTracks</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2011/06/02/CombiningFilesFromDifferentSportsWatchesUsingSportTracks.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,516f9f16-c207-4cb0-8131-46e4fc16a020.aspx</id>
    <published>2011-06-03T08:25:05.5804012+12:00</published>
    <updated>2011-06-03T08:25:05.5804012+12:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I awoke this morning to another great <a href="http://www.dcrainmaker.com/">Ray Maker</a> review,
this time of the <a href="http://www.dcrainmaker.com/2011/06/polar-rcx5-in-depth-review.html">Polar
RCX5</a>. Now I have to admit a bit of a sports watch fetish, certainly nothing approach
Ray, but I’ve still owned a bunch of Polar, Suunto and Garmin devices. I’ve pretty
much settled on Garmin as they support the open(ish) ANT+ sensor platform, but, it’s
not without challenges and as such I’ve recently been combining data from two watches.
</p>
        <p>
Towards the end of Rays piece* he notes the issue with the RCX5 in that the desktop
client basically spits the data as two separate files: a *.gpx for the Geo data and
a *.hrm for the traditional polar biometrics and sensor data.
</p>
        <p>
Ray says this
</p>
        <blockquote>
          <p>
            <em>“For example, if you try and import into Sport Tracks, after selecting both files
it simply sees them as two separate training entries – one using GPS data, and one
using footpod data:”</em>
          </p>
        </blockquote>
        <p>
Which is strange, because I do this all the time. Reason being is that the heart rate
monitor that Garmin ship (the soft one) is a piece of turd. I ordered an older style
strap from Garmin but they sent me the wrong one (an old FR301strap) which doesn’t
bloody work. So, I am stuck using my Garmin 310XT for GPS + Footpod and my Polar s625x
with the ever reliable analogue HRM and wearlink strap for HR.
</p>
        <p>
Basically at the end of each workout I let the Garmin 310XT sync with Garmin Connect
and I open Polar Personal Trainer and sync the s625x into that.
</p>
        <p>
Then I can begin import into SportTracks. The trick is to import them in a two step
process… I’ll use a worked example here which was my run/hike up Lynn Peak near Vancouver
this past weekend.
</p>
        <p>
I typically start by importing the Garmin *.fit file direct from the file system (it
gets dumped out by the Garmin ANT Agent)
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_2.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_thumb.png" width="644" height="464" />
          </a>
        </p>
        <p>
This should feel like a standard import.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_4.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_thumb_1.png" width="644" height="464" />
          </a>
        </p>
        <p>
Next I change to the Polar Folder and import the HRM file.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_6.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_thumb_2.png" width="644" height="464" />
          </a>
        </p>
        <p>
Now here is the trick. If you have the clocks on your watches correctly sync’d then
SportTracks will typically pickup that the workouts overlap and automagically offer
to ‘update’. In my case I didn’t because the olar Dual time doesn’t change the date.
So instead I choose the radio button option to <em>Update Existing Activity</em></p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_8.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_thumb_3.png" width="644" height="463" />
          </a>
          <br />
Note that I have<br />
1. Selected the radio button<br />
2. Chosen my previously imported activity<br />
3. Chose to import heart rate and elevation (the s625x has a *proper* altimeter which
is a heap better than relying on GPS data from the 310XT)
</p>
        <p>
And that’s really all there is to it folks- GPS data and running cadence from the
Garmin and Heart Rate data and elevation off the Polar. While I don’t have an RCX5
to test with (feel free to send me one) this process should work just fine with a
GPX file and an HRM file.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_10.png">
            <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/Windows-Live-Writer/Combining-Files-from-Different-Sports-Wa_B70A/image_thumb_4.png" width="644" height="384" />
          </a>
        </p>
        <p>
*Ray: As a quick ask would love to see the sections of your reviews with #Anchor tags
so we can link direct to them.
</p>
        <img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=516f9f16-c207-4cb0-8131-46e4fc16a020" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Windows Azure Drives + SQL Compact 4 &amp;ndash; Part #1</title>
    <link rel="alternate" type="text/html" href="http://www.syringe.net.nz/2010/07/20/WindowsAzureDrivesSQLCompact4NdashPart1.aspx" />
    <id>http://www.syringe.net.nz/PermaLink,guid,0ebfe8e0-3017-482c-820c-f16902dc6ae9.aspx</id>
    <published>2010-07-20T20:24:02.02425+12:00</published>
    <updated>2010-07-20T20:24:02.02425+12:00</updated>
    <category term="Windows Azure" label="Windows Azure" scheme="http://www.syringe.net.nz/CategoryView,category,Windows%2BAzure.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
So there’s not a whole lots of stuff on the interweb that gets you started with drives
and SQL Compact 4 is only just out into the open. My need was for a lightweight database
for a sample app I’m building with <a href="http://www.59north.com">Chris Klug</a> for
our session at Tech Ed New Zealand.
</p>
        <p>
I thought I’d run quickly through how I got things going.
</p>
        <p>
          <strong>Getting the Bits<br /></strong>I grabbed the bits using the <a href="http://microsoft.com/web">Microsoft
Web Platform installer</a>. I wanted two things. 1) SQL Compact 4 CTP1 and; 2) The
Web Matrix tool.<br />
It’s hopefully fairly obvious why I needed SQL Compact. The reason I wanted Web Matrix
is because it’s currently the only tool I could find that will allow me to create
and edit SQL Compact databases.<br /></p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/trznaj5k_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="trznaj5k" border="0" alt="trznaj5k" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/trznaj5k_thumb.jpg" width="244" height="150" />
          </a>  <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ixuyzv04_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ixuyzv04" border="0" alt="ixuyzv04" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ixuyzv04_thumb.jpg" width="244" height="94" /></a></p>
        <p>
I’ll be using Visual Studio for much of this post; I’m guessing y’all know how to
get your mittens on that now.
</p>
        <p>
          <strong>Creating a Database<br /></strong>To build our database we’ll be using Web Matrix. It doesn’t have a specific
database designer that is independent of the site editor so we’ll need to create a
site and then create it in the context of our site.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/mdhkuthy_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mdhkuthy" border="0" alt="mdhkuthy" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/mdhkuthy_thumb.jpg" width="244" height="117" />
          </a>
          <br />
We’ll start from a template.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/sepojgnz_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="sepojgnz" border="0" alt="sepojgnz" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/sepojgnz_thumb.jpg" width="244" height="174" />
          </a>
          <br />
…and create an empty site.
</p>
        <p>
Choose <em>Databases </em>from the left hand nav.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/p2py5yin_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="p2py5yin" border="0" alt="p2py5yin" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/p2py5yin_thumb.jpg" width="244" height="154" />
          </a>
        </p>
        <p>
Choose to create a new database from the ribbon
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/1cx4dml5_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1cx4dml5" border="0" alt="1cx4dml5" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/1cx4dml5_thumb.jpg" width="244" height="98" />
          </a>
        </p>
        <p>
Double click to select tables. And right click to add a new table
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/a5kbmcaw_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="a5kbmcaw" border="0" alt="a5kbmcaw" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/a5kbmcaw_thumb.jpg" width="241" height="244" />
          </a>
        </p>
        <p>
Create a basic table definition with a ContactID and ContactName. Use the Ribbon controls
to create new columns. Use a BigInt identity column for the ID and make it the Primary
Key.
</p>
        <p>
          <a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ih4vdprv_2.jpg">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ih4vdprv" border="0" alt="ih4vdprv" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ih4vdprv_thumb.jpg" width="244" height="140" />
          </a>
        </p>
        <p>
Save the table as <em>Contact</em></p>
Close Web Matrix- our database has been created and saved into a subfolder of my documents.
Mine was at 
<p>
C:\Users\Chris Auld\Documents\My Web Sites\Empty Site\App_Data 
</p><p>
We need some data in our database. We could ahve used Web Matrix to do this but I
wanted to show another tool that allows us to execute raw SQL against the DB as it
may be more suited to some developers.
</p><p>
The tool in question is the SQL CE Toolbox (you’ll need the latest version which is
a standalone application)<br />
Grab it from here: <a title="http://sqlcetoolbox.codeplex.com/" href="http://sqlcetoolbox.codeplex.com/">http://sqlcetoolbox.codeplex.com/</a><br />
Don’t just install the VIsual Studio add-in version as at the time of writing it doesn’t
support the v4 sdf format.
</p><p>
Open the tool and right click to add a new connection
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/wgaqiuot_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="wgaqiuot" border="0" alt="wgaqiuot" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/wgaqiuot_thumb.jpg" width="244" height="64" /></a></p><p>
Open the database file and test the connection
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ztpigimk_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ztpigimk" border="0" alt="ztpigimk" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ztpigimk_thumb.jpg" width="244" height="201" /></a></p><p>
Expand the tree to show our <em>Contact</em> table. Right click and choose ‘Script
as Insert’. This will create a template insert script for us.<br />
Enter some sensible (or stupid if you prefer) values and then execute the query. I
didn’t attempt to insert the identity column and so removed that from the query.
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/slfl4yrk_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="slfl4yrk" border="0" alt="slfl4yrk" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/slfl4yrk_thumb.jpg" width="244" height="114" /></a></p><p>
Before we leave this tool click the Estimated Plan toolbar button. As long as you
have SQL Server Management Studio installed it’ll open that tool and hand over the
query plan text.
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/43uma5oy_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="43uma5oy" border="0" alt="43uma5oy" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/43uma5oy_thumb.jpg" width="244" height="104" /></a><br />
That’s right folks. That is a graphical query plan graph of the query for my embedded
database. That’s pretty damn cool!
</p><p><strong>Getting Your Database Into Windows Azure Storage</strong></p><p>
Being a database we want our *.sdf file sitting in a WIndows Azure drive. There are
a bunch of ways we could do this:
</p><p>
- We could put it into our service package, create a drive on startup, copy to the
drive and then do a lazy check each time we start so it’s only done once.<br />
-We could create the whole VHD on the client machine and upload that to storage. This
removes any of the once only init code from our application. THis is the approach
I chose to use
</p><p>
We need to create a VHD. Hooray for Windows 7- this is trivial. If you are a hard-ass
like Steve Marx then you can use a <a href="http://blog.smarx.com/posts/serving-your-website-from-a-windows-azure-drive">batch
command to do this</a> but you all know that I’m not really a hard ass so I’ll do
the draggy droppy clicky clicky thing.
</p><p>
Open Disk Management. I’m a fan of the search box in the start menu- type ‘Disk Management’
and then select ‘Create and format hard disk partitions’
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ll3azfwj_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ll3azfwj" border="0" alt="ll3azfwj" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/ll3azfwj_thumb.jpg" width="244" height="166" /></a></p><p>
Use the <em>Action </em>menu to <em>Create VHD. </em>Stick it somewhere useful like
the desktop as we’ll need to grab it later. You’ll want to choose a fixed size- I
chose to make it 100MB. You’ll only pay for the actual data you store on disk (not
the empty stuff) but more on that shortly.
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/soyitaae_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="soyitaae" border="0" alt="soyitaae" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/soyitaae_thumb.jpg" width="244" height="233" /></a></p><p>
Once created you’ll need to Initialize the disk with an MBR
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/mhcwels0_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="mhcwels0" border="0" alt="mhcwels0" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/mhcwels0_thumb.jpg" width="244" height="91" /></a></p><p>
.. and Format as NTFS
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/0bubf4tl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="0bubf4tl" border="0" alt="0bubf4tl" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/0bubf4tl_thumb.jpg" width="244" height="89" /></a></p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/image_2.png"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/image_thumb.png" width="244" height="191" /></a>\
</p><p>
The drive will now be available in Windows Explorer and we can copy our *.sdf file
across from the <em>My Web Sites </em>directory to our new VHD
</p><p>
Once we’ve copied it over we can go back and <em>Detach</em> the VHD
</p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/hg2c3kjm_2.jpg"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="hg2c3kjm" border="0" alt="hg2c3kjm" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/hg2c3kjm_thumb.jpg" width="244" height="128" /></a></p><p>
Now we can upload the VHD to Blob storage. Before you crack out your favourite Azure
storage client (I like <a href="http://www.cerebrata.com/products/cloudstoragestudio/">Cloud
Studio</a> from Cerebrata) you’ll need to want to check that it supports sparse Page
Blob uploads. Cloud Studio doesn’t so we’ll use the VHDUpload Tool from here: <a title="http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx" href="http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx">http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx</a> I
took the liberty of building the tool: <a href="http://cid-331c152ae0a57e96.office.live.com/self.aspx/Public/VHDUploadTool.zip">VHDUpload</a></p><p><a href="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/image_4.png"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="image" border="0" alt="image" src="http://www.syringe.net.nz/content/binary/WindowsLiveWriter/WindowsAzureDrivesASimpleHow2_10236/image_thumb_1.png" width="244" height="232" /></a></p><p>
 
</p><p>
More in the Part 2 of this post tomorrow.
</p><img width="0" height="0" src="http://www.syringe.net.nz/aggbug.ashx?id=0ebfe8e0-3017-482c-820c-f16902dc6ae9" /></div>
    </content>
  </entry>
</feed>