<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Ken Henderson's WebLog</title><link>http://blogs.msdn.com/khen1234/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>How to Beat Halo 3 in 20 Minutes</title><link>http://blogs.msdn.com/khen1234/archive/2008/01/21/how-to-beat-halo-3-in-20-minutes.aspx</link><pubDate>Mon, 21 Jan 2008 11:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7183144</guid><dc:creator>khen1234</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/7183144.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=7183144</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;(Or, How to Beat Its Longest Level, The Covenant, in 20 Minutes and Get the Full 3x Time Bonus)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;(Or, What I Did On the Day after Christmas)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;(Or, How to Set a New World Record for Speed Play in Halo 3)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Over the recent holiday break I decided to play some games with my kids.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My teenage son loves Halo 3, so we played some of that.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For those who aren’t Halo warriors, some back story:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;you can play against other people via Xbox Live or you can play against computer-controlled bad guys (The Campaign) and can optionally team up with other players against these computer baddies.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My son and I used to play Halo 1 competitively over XBConnect years ago, but I lost interest when Halo 2 came out, Xbox Live debuted, and you couldn’t decide what maps, game variants, etc. you wanted to play—you had to play whatever the Powers That Be decided.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I didn’t like that and basically retired from competitive Halo play.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Despite my son and I (and occasionally Bart) having played, I’d estimate, hundreds of games against other teams and never having lost, I decided it was time to hang up the cyborg armor and shoulder holster.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My son played on and continues to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Anyway, we played some campaign over the holidays, and one of the new intriguing features of H3 is campaign scoring and time bonuses.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can opt to have the game record individual or team scores while battling the computer-controlled bad guys and get a time bonus for finishing a level within a specified time limit.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For the full bonus, you must finish a level in less than 20 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You get a 3x bonus (i.e., your score is multiplied by 3) for this.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This works out nicely for short- to medium-length levels, but not so well for really long ones.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The longest level in Halo 3, The Covenant, takes nearly 20 minutes just to navigate through—forget killing bad guys.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This level is, I think, the longest in any version of Halo so far, and really ought to be two or even three separate levels.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Everyone I talked to thought it was simply impossible to get the full bonus for this level on Normal difficulty.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The current record for completing The Covenant was 11-12 minutes (as recorded at &lt;A href="http://www.highspeedhalo.net/?times"&gt;http://www.highspeedhalo.net/?times&lt;/A&gt;&lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;), but it was done on Easy difficulty, which few veteran players would really consider valid.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The game practically plays itself on Easy, and you play differently when there’s virtually no chance that the bad guys can kill you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You try tactics and take shortcuts that simply would not work on Normal difficulty or one of the higher ones.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For me, the record for Normal difficulty or above was all I was interested in, and, not surprisingly, there were no records for Normal or above—no one had yet done it—not officially, anyway.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I decided to find out whether I could.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I haven’t set many records in my time, but this was one I thought might be within my grasp.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;You might be surprised to learn that there’s an entire community oriented around high-speed Halo play, but that’s exactly what the fine folks at &lt;/FONT&gt;&lt;A href="http://www.highspeedhalo.net/" mce_href="http://www.highspeedhalo.net/"&gt;&lt;FONT face=Calibri size=3&gt;HighSpeedHalo&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; are about.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They’re a thriving group of expert players dedicated to nothing but completing the various levels of the three versions of the game as quickly as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Some of the times posted for some of the shorter levels are simply insane.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Me, I like to play a little more deliberately, so the mammoth level The Covenant was right up my alley.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I spent the day after Christmas figuring out how to beat it as quickly as humanly possible and, in so doing, earn the 3x time bonus.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I learned a number of interesting details about the game and came to respect it on a whole new level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; When you feel certain about something--when you're literally inspired by it--you ought to say so and throw away all the qualifiers and hedge words people like to work into everyday speech.&amp;nbsp; For me, &lt;/SPAN&gt;Halo 3 is, quite simply, the best video game ever published.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; I've played a lot of video games in my time, but it towers above them all--plain and simple.&amp;nbsp; &lt;/SPAN&gt;The folks at Bungie should be very proud of the final installment in their trilogy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Pondering the sheer amount of work that must have gone into making it the masterpiece that it is simply boggles the mind—even for an old programmer like me.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;So, below is a little piece I wrote about my journey through The Covenant in under 20 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was originally linked on the Bungie forums, but I thought you might enjoy reading it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It includes step-by-step instructions in case you want to do it yourself (this didn’t take as long as it might appear—I wrote it mostly from memory).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The piece also links video of me playing the game in case you want to see the record actually being set.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My first record time was 19:45.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Subsequently, I was able to get it down to 14:59, the current record.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I think that could go still lower.&amp;nbsp; As you might expect, my current techniques have evolved a bit from the first time I broke the 20-minute barrier.&amp;nbsp; You can view all the current records &lt;A class="" href="http://www.highspeedhalo.net/?times" mce_href="http://www.highspeedhalo.net/?times"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-bottom-alt: solid windowtext .75pt"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; MARGIN: 0in 0in 10pt; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: medium none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0in 0in 1.0pt 0in"&gt;&lt;FONT face=Calibri size=3&gt;I’m back retired from Halo—I just don’t have time for it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But it’s a wonderful game, and I’ll return to it someday after some of my projects are done and it looks like there’s another mountain to climb.&lt;/FONT&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 18pt; LINE-HEIGHT: 115%"&gt;&lt;FONT face=Calibri&gt;How to Beat Halo 3 in 20 Minutes&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I haven’t played much Halo since the original version.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I used to play online via XBConnect on a regular basis, but I didn’t like some of the limitations of play on Xbox Live when Halo 2 came out, and I gradually lost interest.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I was partial to Capture the Flag on Blood Gulch and didn’t like having to play umpteen other game variants and maps just to get a combination I actually enjoyed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I also didn’t like the prospect of having to play all the time just to be as competitive as I had been.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I have a day job and a family and some semblance of a life.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So, as fun as it is being schooled by someone who’s played a map a hundred times more than I have and can recite where every weapon and power-up is in his sleep, I haven’t played much H3 multiplayer.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I don’t like playing with noobs (which is, of course, where you start in the Xbox Live ranking system when you haven’t played much), and I also don’t like getting my butt kicked by people who may not be great players in general but who simply have more time on their hands than I do (what you might call “educated noobs”—a gaming variant of the “educated fool”).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I’m also not a big fan of twitch-centric games.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I like killing baddies as much as the next guy, but I prefer something with some strategy to it, some teamwork, some planning.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Playing merely by reflex can be fun, but I got my fill of that back in the days of Doom and deathmatch—I want something with a little more substance to it now.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That said, I don’t want a mere strategy game—the FPS still is and probably will always be my favorite kind of game.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And I certainly enjoy racking up kills.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s just that I want it to be for something more than getting the kill title for the game or bumping my experience points.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I couldn’t care less about player ranking, armor types, or any of that other nonsense.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I need an objective of some type, and I want it to involve teammates and strategy.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Playing the H3 campaign with others over Xbox Live for points and/or speed became a nice substitute for me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You have definite objectives and you have the team play and strategizing that I find so much fun.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Turn on some skulls and play on Legendary—or play for speed—and you actually have a challenging game, something approximating the fun I had on XBConnect.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Until I can create custom games that I can then advertise publicly and play random teams in (like I did with XBConnect), this is probably the only way I’ll play.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I got interested in playing H3’s longest level, The Covenant, for speed, and was surprised to learn that no one had recorded an official time on Normal difficulty or above for it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It appeared no one had been able to beat it in less than 20 minutes and earned the full time bonus.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My teammates were pretty sure that getting the full bonus wasn’t even possible on Normal or above, and I did some online research that seemed to confirm that.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;No videos of anyone ever doing it, no step-by-step guide on how to do it, no discussion of it whatsoever.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Most people seemed resigned to getting only a partial time bonus and making up for it with all the additional kills one could get thanks to the level’s inordinate length.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I had hoped that Bungie had play-tested each level before deciding on the 20 minute cap.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Seemed reasonable to assume that if they were going to have a uniform time limit for all the levels, they’d start with what was a reasonably brisk pace for the longest level and use it for all the others.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Doing otherwise could leave you with a time bonus that was simply unattainable.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So, I wondered whether there might have been something we’d missed, a way perhaps to finish this humongous level in under 20 mins that we hadn’t yet discovered.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The day after Christmas I finally sat down and figured it out.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It took many tries, but was embarrassingly simple once I finally got my act together.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So, without further ado, here’s a step-by-step guide for beating Halo 3’s seventh level, The Covenant, in under 20 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you can beat this level in less than 20 minutes, you should be able to beat &lt;I style="mso-bidi-font-style: normal"&gt;any&lt;/I&gt; H3 level in less than 20 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The YouTube video of my first record-setting game is located here:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://www.youtube.com/watch?v=aHgncNQ29_k" mce_href="http://www.youtube.com/watch?v=aHgncNQ29_k"&gt;&lt;FONT face=Calibri size=3&gt;Part 1&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, &lt;/FONT&gt;&lt;A href="http://www.youtube.com/watch?v=GxT_mylFbqM" mce_href="http://www.youtube.com/watch?v=GxT_mylFbqM"&gt;&lt;FONT face=Calibri size=3&gt;Part 2&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;, and &lt;/FONT&gt;&lt;A href="http://www.youtube.com/watch?v=Q5wLQbaE-Ug" mce_href="http://www.youtube.com/watch?v=Q5wLQbaE-Ug"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Part 3&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The game film for my latest record is in Slot 1 under gamertag Ryanator if you have an ID on Bungie.net.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;A few general recommendations:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;If you get killed, it’s very difficult to hit the full time bonus on this one.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For that reason, I’ve been known to turn on the Iron Skull when I play this level for time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There’s no point in continuing to play for the full time bonus if it becomes impossible because you got killed and burned a bunch of time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Beating the level is not hard—on any difficulty.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Beating it in under 20 mins is.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Turning on the Iron Skull automatically resets you to the level start (if you’re playing solo), so it’s a time saver while you’re first learning how to quickly beat it.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;When playing strictly for time, you have to think differently than you normally do.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example, you’ll have to resist the urge to kill every enemy you come across—you won’t have time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll also have to avoid doing things that leave you waiting for the game, such as waiting for your computer-controlled helpers or equipping them with desirable weapons.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example, when playing for points or with a bunch of skulls enabled, I frequently equip my passenger in the Warthog and the passenger on the Mongoose with a Fuel Rod and a Spartan Laser, respectively, before heading for the first tower because they will have unlimited ammo and are a great help in taking down the Banshees, Ghosts, and other things you come across.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When playing for time, I don’t do this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I don’t care about racking up points, and every second counts (I actually missed the 20 minute mark once by one second—yes, &lt;I style="mso-bidi-font-style: normal"&gt;one&lt;/I&gt; second—and I was not happy).&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;My approach here (and the only one that works, as far as I know) is to skip as much of the level as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’m fairly sure this is the only way to finish it in less than 20 minutes (without cheating by getting out of the map, that is—search YouTube for videos demonstrating that).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This begs the question as to why Bungie would make the limit so low that you have to not play parts of it in order to get the bonus (kind of defeats the purpose, doesn’t it?), but I don’t see any other way to do it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I originally thought I might be able to hijack one of the Banshees that harass you after you kill the AA Wraith at the beginning of the level, but not so.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can down them with a charged Plasma Pistol burst, but you cannot then board them—Bungie has evidently disabled this in order to prevent you doing what many of us did on H1’s Assault on the Control Room level:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;grabbing a Banshee before you were supposed to have it and bypassing/laying waste to much of the level.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;We’ll first begin by bypassing the forces in and around the Wraith hill in the interest of time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Note: on Normal difficulty, it is also possible to clear these forces quickly enough that doing so and driving (rather than walking) to the tower is actually faster.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The instructions I provide below work on any level of difficulty and should also work regardless of the skulls you have enabled.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;When you exit the Pelican, head toward the right of the boulder in front of you, toward the waterfall.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There will be 2-3 Grunts in front of you (at about 2 o’clock).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Take them out and head for the waterfall.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Continue on up the pathway on the right edge of the map immediately adjacent to the waterfall.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Hug the wall as you walk, being careful to situate yourself behind the trees, rocks, and other cover that Bungie’s level designers helpfully placed in order to protect you from attack by the baddies on your left.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;This will bring you to the far right of the downed Pelican and the hill with the AA Wraith.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Just keep walking, hugging the wall as you do.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you come across Grunts behind the downed craft that are shooting at you, quickly take them out and keep walking.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Continue hugging the wall and walking toward the entrance into the canyon forest that eventually leads to the first tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Be sure to hug the wall until you are out of range of the Brute Chieftain on the Wraith hill.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There is a spot during the walk before you round the corner that is out in the open a bit and exposes you to the Chieftan for a brief time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I sometimes bunny hop as I go through this to make it more challenging for him.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ve not been shot yet.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you manage to get around the corner without being shot, you did fine.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you get killed by a Fuel Rod blast, you didn’t do so well.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;5.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You will have to walk to the first tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is probably the most tedious part of this approach, but it saves an enormous amount of time, especially on Heroric and Legendary difficulty. &lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;6.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you walk, you’ll notice that the turret, bad guys, and Ghosts that are usually waiting for you here have not yet been deployed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Keep walking until you reach the clearing where you can look down on the Wraith immediately in front of the first tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As you walk, you’ll hear the audio clip play re: the AA Wraith and related forces being “neutralized.”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The game has killed them for you, and rather than waiting for the Warthog and Mongoose to be dropped back at the beach, you are almost to the tower when this happens.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I’m certain Bungie designed the map such that the “battle for the Wraith hill” could be bypassed in this way.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That’s why the path on the right edge of the area exists in the first place and provides adequate cover to keep you alive.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And that’s why the AA Wraith is eventually taken out, anyway, and the rest of the level plays normally once you reach the tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Note:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;if you cleared the AA Wraith hill yourself and drove to the tower (hopefully in a Warthog), you can jump immediately off the cliff in the Warthog and head straight for the tower entrance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Bypass the Wraith, the Prowlers, and the Ghosts, and ram the other occupants of the corridor.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you do this, skip steps 7-15.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;7.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you approach the clearing, switch to your Battle Rifle and zoom it in on the area to the right of the Ghost near the ammo containers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll see a Grunt about to board the Ghost.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Normally, you come rushing in in a vehicle and can catch him before he takes off with the Ghost.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since you’re on foot, you’ll have to snipe him with the BR before he does so.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Kill him before he takes the Ghost as you will need it very shortly.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;8.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;After you kill the Grunt, go to the edge of the plateau overlooking the canyon where the Wraith hovers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Take it out with your Spartan Laser.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If it’s facing away from you, one shot to its rear should do it; otherwise, you’ll likely need two shots.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;9.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Get in the Ghost and move it to be directly adjacent to the ammo container holding the Fuel Rod gun (but don’t get the Fuel Rod yet).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is very important.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll hear audio instructing you to take out the tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will trigger the three Ghosts in the canyon to come into firing range in the general vicinity of the downed Wraith.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Normally, you probably encounter these guys near the waterfall or near where you currently are.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But taking out the tank and boarding the empty Ghost triggers them to head into the canyon and wait to ambush you.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;10.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Using at most one shot each from your Spartan Laser, take out the three Ghosts.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you were able to take out the Wraith with a single shot, you can afford one miss; otherwise, you can’t.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is important because you’ll be rushing the tower in just a moment, and you don’t want the little dudes in the Ghosts firing on you as you do.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Like a lot of things when playing for time, it’s important to be as quick as possible without missing.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;11.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once the Ghosts are down, grab the Fuel Rod gun (drop the laser) and jump in the Ghost.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Head down toward the waterfall and around the bend into the canyon.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You are going to rush the tunnel leading into the tower in your Ghost.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why shouldn’t you just jump off the canyon wall and save time?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why go through the water at all?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Because you need the checkpoint, and, more importantly, the subsequent exit of the tunnel by the Prowlers to occur, before you rush it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you jump off the canyon wall and head straight for the tower, they don’t come out on their own and will happily shoot and ram you when you try to enter the tunnel.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;12.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you approach the tunnel entrance, watch out for the turret up on the plateau to your left.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I will sometimes go ahead and take this out with the laser before I board the Ghost if I have a round left over after dispatching the Wraith and the three Ghosts.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the turret is still active, just strafe horizontally a bit to the right of the tunnel entrance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What you’re waiting on here is for the two Prowlers to exit the tunnel and come after you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t hover immediately in front of the tunnel, as that would allow them and the scads of others in the tunnel to shoot you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But get close enough so that when they come out, you can immediately boost in behind them.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;13.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once the Prowlers come out after you, boost in behind them and ram the minions in the tunnel.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Be careful because doing so often throws the lightweight Ghost off course.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Ram into the turret in the tunnel and destroy it and splatter as many baddies as you can.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Be careful not to let one of the Brutes hijack your Ghost.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That will result in almost certain death and cost you time.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;14.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You will probably see your shields depleted from this little maneuver.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you do, boost over to the rocky cave-like structure immediately past the door so that you can recover before making a run for the door itself.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is another of those map features that was obviously put in for people who charge the door like this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I had never used it before playing this level for time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I generally commandeer the Wraith and destroy everything in the tunnel before even entering it.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;15.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once you’ve healed, make a run for the door, picking up the Active Camo power-up and the two plasma grenades (as necessary) as you go.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Shoot anyone you have to, but don’t worry about clearing the tunnel entrance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Your job is to get inside asap.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;16.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once inside, kill the two or three baddies guarding the entrance to the first room you come to.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Using your Battle Rifle, you should be able to dispatch them in no time.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;17.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Next approach the room entrance and enable Active Cammo, then run through the middle of the room to the door behind it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If possible, take out the Brute as you go.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If he’s facing away from you, simply melee him.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If he’s facing you, knock down his shield with your Fuel Rod gun, then shoot him once in the head with the BR to kill him.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Regardless, keep moving as your invisibility will run out before you reach the door, and the Grunts and assorted baddies in the room won’t take kindly to your presence.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Note:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;alternatively, you can take the left corridor and jump from the stacked Covenant ammo cans up through the window and on to the second story of the building.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will let you immediately proceed to the elevator and bypass all the bad guys in between.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, keep in mind that this means that you’ll face these very same bad guys when exiting the tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Jumping through the window is usually faster, but on Heroic and Legendary, it can then be difficult to get out of the tower alive, so the difference is usually a wash.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;18.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Run through the door and take out anyone immediately inside.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Often, there are three Grunts immediately inside the door.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Three headshots, and you should be done with them.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;19.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Run up the ramp and shoot the exploding canisters in the center of the room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will kill most of the baddies in the room.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;20.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Continue on to the ramp on the far side (your left) of the room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Kill anyone you find there and enter the antechamber at the top of the ramp.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;21.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Repeating what you did in the earlier room, take out the Brute.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Either Fuel Rod once followed by a BR to the head (a variation on the old plasma pistol, BR combo) or melee.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The reason you want to take out these Brutes now is that you’ll have to face them when exiting the tower if you don’t.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;22.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you run through the room and take out the Brute, continue on through to the elevator.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Keep moving as the Grunts and assorted other baddies will be shooting at you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Engage the elevator, and, as you ascend, take out as many of the bad guys you’re leaving behind as you can.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll face the remaining ones when exiting the tower.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;23.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Up in the tower, the Fuel Rod gun is your friend.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unless you’ve enabled skulls, two shots on any guy in the room will take him out, but don’t waste your ammo.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll need a good 4-5 rounds for the next tower, so don’t waste them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ve got 15 rounds, so don’t burn more than 10 in this room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Remember that once a Brute’s shields are down, a single shot to the head with the BR will take him out.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, don’t forget you have grenades. &lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;24.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You will immediately be charged by two Brutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I like to stick them with spike grenades, myself (there are two in the right corner of the room on the floor), but use whatever works for you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Quickly take them out and proceed to the room proper.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;25.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Inside the room, begin by taking out the Chieftain if you can.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A good Fuel Rod blast followed by a BR shot to the head shoot do it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You will have two other Brutes shooting Brute Shots at you while you move through the room, so be careful.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dispatch everyone in the room as quickly as possible, then hit the switch as the audio clip instructs.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;26.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Taking out the Chieftain early has the advantage of yielding an Invincible power-up pretty often.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is very nice to have when exiting the next tower, so pick it up if he drops it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ve noticed that you have a better chance of this if he has not yet enabled invincibility himself (glows all white).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also grab the Gravity Hammer (trade out your Battle Rifle—you won’t need it for awhile).&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;27.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Engage the elevator and head back downstairs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The main thing to look out for as you exit the tower is being stuck by a grenade.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the Grunts massed near the door are near enough to each other to be worth it, jump in the middle of them and hit one with your Gravity Hammer to kill a bunch of them at once.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Style points are always nice to have, even when playing for speed.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;28.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Outside, grab the Mongoose, the fastest vehicle in the game, and don’t wait for any passengers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Head back out to the beach as instructed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Drive full throttle the whole way and avoid obstacles. As you near the beach, you’ll see some of the bad guys deployed that weren’t there earlier when you walked to the tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Just drive right past them—don’t stop for anything.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The next section involves getting from the beach to the third tower (you skip the second one because the Arbiter and friends took it down).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The key here is to move as quickly as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Hornet’s purpose here is not to help you rack up kills but rather to get you safely to the next tower as quickly as possible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;29.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Grab the first Hornet you come to and don’t wait for anyone to join you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’re not concerned about racking up kills with the Hornet—it’s just your transportation to the next tower.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;30.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Fly to the next tower without engaging the Banshees or Phantom as you go.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If one of them gets directly in front of you to where your reticle turns red without requiring your to deviate in order to shoot them, go ahead and squeeze off a missile or two.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There’s nothing wrong with scoring more points, but you don’t want it to cost you time or draw you into a protracted air battle just to stay alive.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;31.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Since I’m not varying my course horizontally much, I usually vary my altitude a bit in order to keep from being an easy target for an enterprising Banshee.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This keeps me on course without burning a lot of time off the clock.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;32.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you near the third tower, you’ll pass a mountainous, rocky outcropping to your right that stretches high into the sky.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;It has a notch missing from the top of it just large enough for your Hornet to pass through.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Fly through this notch, then hug the wall as you head toward the tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is a natural shield that will protect you from the Banshees behind you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They will have to follow you to the tower in order to shoot at you, and most won’t.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;33.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;At the tower, land the Hornet directly in front of the right tunnel entrance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Turn the Hornet sideways to your right before landing if possible—this will allow it to serve as a shield against the guys behind you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t worry about taking out the Wraiths or anyone else, just get landed and quickly head down the tunnel.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;34.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Immediately in front of the door leading into the tunnel, you’ll encounter several Brutes guarding it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Quickly dispatch them with a combination of Fuel Rod blasts and grenades.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t take too long or the bad guys behind you will begin attacking.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dispatch the Brutes and get inside.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Try to reserve a Fuel Rod round or two for use inside the tower.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;35.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once inside the tower, head immediately to the corridor on the left (or right—doesn’t matter) of the room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Drones will follow you and mass directly in front of you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Either run into the middle of them, then leap up and hit one of them with the Gravity Hammer or shoot a Fuel Rod blast right into the mass of them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Done correctly, most if not all of them will drop.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A second Hammer swing or Fuel Rod blast will take out the remaining mass if necessary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;36.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Hurry to the door immediately behind the room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If the Hunters are blocking you, retreat back into the corridor, enter the center room through one of the windows between the corridor and the room, and, again, head for the door.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Use this tactic (being a weenie) rather than directly engaging the Hunters.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You don’t have time to die, and you don’t have time to waste taking them out in the usual way.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;37.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once you’re through the door, you’ll see a pack of Brutes enter the foyer in front of you from the far (to your right) side.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Use a combination of grenades and Fuel Rod blasts to kill most of them, then jump through the opening beyond the ramp in the center of the foyer that allows you to bypass the corridor and antechamber where they’ve massed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;38.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Avoid engaging them and head straight for the elevator.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;39.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Your two problems at this point are the remaining Brutes behind you and the Drones you will encounter on the elevator itself.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dispatch the Drones by leaping into the mass of them above your head and hitting one with the Gravity Hammer.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will kill most of them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Repeat as necessary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;40.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;If you didn’t get the Invincibility power-up in the first tower but have another one, now would be a good time to use it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you have the Invincibility power-up, save it for when you exit this tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you have a Bubble Shield or Portable Cover, deploy it to avoid the Brutes and their Maulers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you’ve got a Regenerator, you might deploy it here to keep the Brutes (and possibly Hunters if they followed you) from killing you as easily.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also, remember that you can take cover behind the elevator mechanism itself.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But the main thing to do here in order to stay alive is to engage the elevator as quickly as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you do, you’ll soon be out of range of the guys in the base of the tower—at least for now. &lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;41.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once you’ve ascended to the top of the tower, you’ll encounter four invisible Brutes as well as a Chieftain manning a Plasma Cannon.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you have ammo in your Fuel Rod, take out as many as possible with it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When you run out, trade it out for the Needler in the corner ammo container.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A combination of grenades and Needler rounds should dispatch the invisible guys very quickly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Try to take them out such that at least some of the incendiary grenades they each drop are not detonated by the Needler explosions you’re ripping them apart with.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These come in handy for taking out the Chieftain manning the Plasma Cannon and the Flood you’ll encounter when you exit the room.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;42.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Take out the Chieftain and hit the switch as instructed by the audio clip.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’ve found that a single incendiary grenade can take him out on Normal difficulty.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On Heroic and Legendary, you’ll need to do more.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;43.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once you flip the switch, the Flood descends on you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Head through the center of the room back to the elevator.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t waste time killing any of them unless you have to.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Jump over/run under them as necessary until you reach the elevator and can engage it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you must take them out, use your Gravity Hammer as it will inflict the most damage in as little time as possible.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;44.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Once the elevator has finished descending into the base of the tower, you will encounter the Flood and anyone you left behind before you ascended.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s possible that the Hunters will be there waiting for you, and it’s also possible that a stray Drone or two will be there.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These leftover enemies will likely be behind you, happily shooting you in the back as you exit the elevator.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Flood will be in front of you, between you and the door, and also to the side and behind you. &lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;45.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Run for the door, taking out any Flood you come across as necessary.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;46.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you approach the door, pause for a split second to let it open.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Often, there will be a phalanx of Brutes immediately in the threshold as it opens.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You don’t want to run into them and let them immediately begin beating on you and stealing your health.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Pause for a split sec as you approach the door (it will open on its own), then rush them (as necessary) and take them all out with your Gravity Hammer.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;47.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Next, head up the right side corridor toward the green Phantom firing on the bad guys. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Remember that Invincibility power-up you (hopefully) grabbed earlier?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Engage it here if necessary to get out of the tower alive.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll likely encounter both Flood and Brutes as you go.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Kill as many as you have to on your way out of the tower.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If possible, trade out your Hammer for a Battle Rifle on the floor of the right corridor as you run.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;48.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;As you head toward the green Phantom, you’ll happen upon a small ramp leading out of the tower structure down toward left.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There you’ll see a Gauss Warthog.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Jump in it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you successfully grabbed a Battle Rifle and you’re playing on Normal (or Easy), take off.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If not, you’ll need to do a couple of other things before leaving.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Jumping in the Warthog will trigger the marines up on the tower base to follow you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Soon, you’ll be joined by a passenger and a gunner.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After they get in, get out of the Warthog and run back toward the ramp, into the mass of marines coming toward you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You are looking for one with a Battle Rifle.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There will be at least one.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Trade your Needler for his BR—you’ll need it in the last section of the level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Get back in the Warthog and head out.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Do this quickly as you don’t want an NPC taking your hog.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(And &lt;I style="mso-bidi-font-style: normal"&gt;don’t&lt;/I&gt; grab the Scorpion—it’s too slow—remember: &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;you’re playing for time).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This next section involves navigating around a snowy mountain to a valley outside the scene of the final battle in the level—the citadel—where you must destroy two Scarabs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The key here is to move as quickly as possible and don’t let any of the other vehicles ram you or flip you over.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;49.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Rush through the snowy level toward the area where you take on the Scarabs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There are no shortcuts—just blaze through there and let your gunner take out the bad guys you encounter.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the YouTube video above, you’ll see that I actually get killed by my gunner because the idiot shoots a Ghost that has just rammed us en route.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Ghost is immediately in front of us, and when my gunner Gausses him, it blows up the Warthog, killing me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I wasn’t happy, but was so far ahead on time, I was pretty sure I could still hit the bonus.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;50.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;When your reach the Scarab valley, jump in a Hornet and fly straight to the back of one of the Scarabs (I usually take the one on the left, but it doesn’t really matter which).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Ignore everything else as much as possible and simply gun for the light above the Scarab’s tail section until you’ve blown off its back cover, then shoot the exposed reactor core until you destroy the Scarab.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don’t wait for it to actually detonate—head for the other Scarab immediately and repeat the procedure.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once you’ve taken out the second scarab, head for the top of the ramp leading into the citadel and land the Hornet.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;51.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You’ll soon be joined by the Arbiter and 343 Guilty Spark.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When the Arbiter starts to tell Spark to enable the bridge, immediately fly the Hornet to the door leading into the citadel and wait for the bridge to materialize beneath you. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;When the bridge materializes, get out of the Hornet and go inside.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is faster than walking over the bridge and will save you some time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;This last section is where you face the Covenant one last time, then fight the Flood to get out of the citadel.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You go through three sections of the citadel, then backtrack through them to finish the level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The key here is to move as quickly as possible—time will likely be of the essence—and avoid getting killed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As with most of Halo, strategically wielding the right weapons at the right time can make the difference between success and death. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;52.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Continue walking toward the inner door inside the citadel.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Eventually, the Arbiter will be teleported forward to join you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll then have to sit through a Cortana clip (God, I hate these), followed by a cut scene.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Skip through the cut scene and get ready to battle the Covenant one last time.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;53.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Inside the next room, on either side of the end of the causeway, two Grunts will be positioned with Fuel Rod guns.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They will continue to rain down terror on you and your Flood allies until you take them out, so start by doing that.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That’s why you needed to trade for the Battle Rifle earlier.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You should be able to easily snipe them both, then proceed to take out the remaining Covenant forces as your proceed down the causeway.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll encounter a Brute at the end of the room, near the door.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Stick him with a grenade or nail him with your Gravity Hammer and proceed to the area near the door where the two Fuel Rod Grunts were.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Pick up the first Fuel Rod gun, quickly reload it, then run over the other one to pick up as much ammo as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you encountered and killed a third Fuel Rod Grunt (sometimes they come through the door as you approach it), obviously you’ll want to grab that ammo, too.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Proceed through the door to the next room.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;54.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You’ll run into Brutes with jetpacks in the next room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Take them out with a combination of grenades and Fuel Rod blasts and proceed on through the room.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For a couple of reasons, it’s helpful to hang back a bit at first and let the Flood take the brunt of the Brutes’ onslaught.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One, they like to fly over and get behind you, effectively flanking you, and attack you from front and back simultaneously.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Two, many of them are carrying Covenant Carbines, and these can drain your shields/health quickly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Hang back, let them attack the Flood, then take them out with Fuel Rod and grenade blasts.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;55.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You’ll encounter a Chieftain with a Gravity Hammer of his own near the door.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Take him out, preferably before he engages invincibility himself and preferably via a headshot.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If he drops an Invincibility power-up, pick it up.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;56.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Proceed on through the next room, hit the switch on the bridge at the end, then turn around and backtrack through the citadel to battle your former Flood allies.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;57.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Jump over as many of these guys as you can, engaging as few of them as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You will likely run out of Fuel Rod ammo during this run, so trade it out for a Needler as you go and use that as necessary as you backtrack.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;58.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;You’ll have no choice but to engage the Flood at the doors between the rooms, as they like to mass there.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Use your Gravity Hammer to clear the doors and let you proceed through.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I also like to toss grenades up on the doors themselves as I approach in order to provide a nice surprise to the Flood baddies who like to pour out when I get there.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;59.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Engage your Invincibility power-up if you have it and if your health is getting perilously low as you head for the end of the level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll be getting shot in the back a lot, so this will probably be necessary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Wait as long as possible before engaging it, though, as it may run out before you reach the end of the level, and, take it from someone who knows, it’s a real drag to get killed this close to getting the bonus.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;60.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Proceed on back through the level until you reach the chute where you jump down to finish the level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If all goes well, you should beat the 20-minute mark.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7183144" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/khen1234/archive/tags/games+halo/default.aspx">games halo</category></item><item><title>Last Week</title><link>http://blogs.msdn.com/khen1234/archive/2007/12/17/last-week.aspx</link><pubDate>Mon, 17 Dec 2007 21:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6792525</guid><dc:creator>khen1234</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/6792525.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=6792525</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I was in Redmond last week on business and had a lot of fun this time around.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The trip began and ended with a visit to Key Arena in downtown Seattle.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Monday night it was the Van Halen concert.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’d already seen Van Halen in Kansas City back in October, but I thought, “What the heck, it was a great show, let’s go see it again.”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I had floor seats this time and could easily see everything that was happening on stage just a short distance away.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The person I took with me said they’d never been to a better concert, and I came away thinking it was even better than the Kansas City show.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Seattle set records for rainfall Monday night, but I was thankfully out of most of it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My guest and I had a nice dinner prior to the show at some restaurant near the venue, and we met up with some other friends after the show as well.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I saw some light rain, but nothing like the torrents the news was reporting.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;During the week, Kalen Delaney came by to see me at the office.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You may have heard:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;she has left Solid Quality Learning and is back doing her own thing now.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Contact her &lt;/FONT&gt;&lt;A href="http://www.insidesqlserver.com/" mce_href="http://www.insidesqlserver.com/"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt; for details.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Kalen is one of those people I always love to meet up with and feel fortunate to know.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;She’s got such an enthusiasm for technology and is such a great communicator—it’s always a joy to sit down and shoot the breeze with her.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We talked about all kinds of things during her visit and even reminisced a little about the old days.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I went out with friends every evening throughout the week.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I often don’t do that—I’m usually too busy—but I made it a point to get out a little bit this time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It’s Christmastime, and I felt like socializing, I guess &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Friday night, I ended up taking in a Seattle Supersonics NBA game back at Key Arena courtesy of some free tickets scored by my boss (his daughter is a dancer for the team).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;They played the Milwaukee Bucks, the teams were evenly matched, and it was a great game.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I got to meet my boss’s daughter and the rest of the dancers during the game and had a great time in general.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The person I went to the game with hadn’t seen many basketball games, but said they thoroughly enjoyed this one.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Saturday morning came early as my flight lifted off at 6:30 a.m.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My driver showed up on time, but didn’t call my hotel room like he usually does, so I finally came downstairs and found him waiting.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Fortunately, there wasn’t much traffic on the way to SEATAC so early in the morning, and I was on my way back home in no time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I was home by 1 or 2 in the afternoon and surrounded by the usual sounds of kids, pets, and the occasional Tarzan yell.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was a quick week, but a productive one.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I hadn’t been in awhile, and I really enjoyed myself this time around.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6792525" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/khen1234/archive/tags/personal/default.aspx">personal</category></item><item><title>SQL Nexus is out!</title><link>http://blogs.msdn.com/khen1234/archive/2007/12/12/sql-nexus-is-out.aspx</link><pubDate>Wed, 12 Dec 2007 19:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6750525</guid><dc:creator>khen1234</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/6750525.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=6750525</wfw:commentRss><description>&lt;P&gt;In case you missed it in my last post, &lt;STRONG&gt;SQL Nexus&lt;/STRONG&gt;, the SQL Server performance analysis platform built by Bart and me, has been released via &lt;A class="" href="http://www.codeplex.com/sqlnexus" target=_blank mce_href="http://www.codeplex.com/sqlnexus"&gt;CodePlex&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://blogs.msdn.com/khen1234/archive/2007/09/23/random-thoughts-on-my-trip-to-the-conference.aspx" target=_blank mce_href="http://blogs.msdn.com/khen1234/archive/2007/09/23/random-thoughts-on-my-trip-to-the-conference.aspx"&gt;Here's&lt;/A&gt; a post post where I talked about how Nexus works.&amp;nbsp; And &lt;A class="" href="http://www.codeplex.com/sqlnexus" target=_blank mce_href="http://www.codeplex.com/sqlnexus"&gt;here's&lt;/A&gt; the link to its page on the CodePlex site.&lt;/P&gt;
&lt;P&gt;While I'm at it, another tool you might find useful is &lt;STRONG&gt;SQLDiag&lt;/STRONG&gt;.&amp;nbsp; It ships&amp;nbsp;as part of SQL Server 2005 and later.&amp;nbsp;&amp;nbsp;Read about it &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/ms162833.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/ms162833.aspx"&gt;here&lt;/A&gt; and &lt;A class="" href="http://technet.microsoft.com/en-us/library/aa175399(sql.80).aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/library/aa175399(sql.80).aspx"&gt;here&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For a high-speed, lean, command-line analysis tool for Profiler traces, check out the &lt;STRONG&gt;Retrace&lt;/STRONG&gt; tool we released into the wild yesterday &lt;A class="" href="http://blogs.msdn.com/khen1234/archive/2007/12/12/a-sql-profiler-trace-swiss-army-knife.aspx" target=_blank mce_href="http://blogs.msdn.com/khen1234/archive/2007/12/12/a-sql-profiler-trace-swiss-army-knife.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6750525" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/khen1234/archive/tags/nexus/default.aspx">nexus</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Retrace/default.aspx">Retrace</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Profiler/default.aspx">Profiler</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/PSSDiag/default.aspx">PSSDiag</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/SQLDiag/default.aspx">SQLDiag</category></item><item><title>A SQL Profiler trace Swiss Army Knife</title><link>http://blogs.msdn.com/khen1234/archive/2007/12/12/a-sql-profiler-trace-swiss-army-knife.aspx</link><pubDate>Wed, 12 Dec 2007 10:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6745075</guid><dc:creator>khen1234</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/6745075.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=6745075</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;Have you ever needed to find your most expensive queries and quickly grew weary of writing T-SQL against trace tables to try to ferret them out?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Have you ever had to wade through gigabytes of trace data just to find one ill-behaving query?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Have you ever struggled to decide what performance metrics really matter when analyzing Profiler traces:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;duration, reads, writes, etc?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Today’s post is about a new tool Bart and I wrote to help you do all this and more.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;Origins&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;The original concept behind &lt;B style="mso-bidi-font-weight: normal"&gt;Retrace&lt;/B&gt; was to create a simple tool to load a SQL Server Profiler trace file into a database ala the &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/nt_command_relog.mspx?mfr=true"&gt;&lt;FONT face="Times New Roman" color=#800080 size=4&gt;Relog&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=4&gt; tool that ships with Windows (and provides similar functionality for Perfmon logs).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Retrace would “re-trace” a session of SQL Server activity as a server-side trace table.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I often needed to query trace files using T-SQL and didn’t like resorting to fn_trace_gettable every time, so Retrace was born to automate that process for me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That was the original idea.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;Of course, these kinds of things tend to take on a life of their own, and Retrace soon began to demand that I enhance it in all sorts of interesting ways.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Around this same time, my friends in CSS got underway with getting the SQL Nexus performance analysis platform that Bart and I built released via CodePlex.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(Great news:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;it’s &lt;/FONT&gt;&lt;A href="http://www.codeplex.com/sqlnexus"&gt;&lt;FONT face="Times New Roman" color=#800080 size=4&gt;out there&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt; now.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;More on that later.)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One of the cooler features we built for Nexus was a facility we called “&lt;STRONG&gt;TraceBuster&lt;/STRONG&gt;.”&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Nexus supports this notion of generic diagnostic data loaders that implement a common interface.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Nexus interacts with these assemblies via this generic interface, and users can build their own loader assemblies so long as they adhere to the interface we expose.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;TraceBuster is a Nexus loader we built to process SQL Profiler trace files and load them into a data warehouse.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It automatically parameterizes the queries it reads from each trace such that the performance of a query executed with different parameter sets can be tracked over time.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unlike SQL Profiler itself, TraceBuster is able to identify and aggregate performance statistics such as CPU use, duration, reads, writes, etc., for these query “templates” rather than treating multiple instances of the same query with different parameters as different queries.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Lightweight, fast, and extremely simple from a coding standpoint, it does exactly what we wanted it to do and no more.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;For a number of reasons, it was decided that TraceBuster would not be included in the CodePlex release of Nexus (though you can still get it &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/"&gt;&lt;FONT face="Times New Roman" size=4&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=4&gt; in binary form).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That got Bart and I to thinking.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How cool would it be if Retrace used TraceBuster and basically provided a nice command line tool to load SQL Profiler traces into a data warehouse?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What if Retrace was merely a thin console app shell over the TraceBuster assembly originally designed for Nexus?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since Nexus interacted with TraceBuster and its other diagnostic loaders generically, there was no reason a small console app couldn’t do the same thing without requiring Nexus itself to be on the box.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Rather than merely load the trace into a trace table on the server, what if we let TraceBuster do all of its cool aggregation and analysis for us, thus saving all kinds of work manually querying the trace files?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And what if on top of that we used the client-side Reporting Services reports that Bart developed for TraceBuster’s data warehouse and had Retrace display them?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Then we’d have a single tool that could blaze through our trace data, load it into a data warehouse for further perusal, and finally display useful reports over that data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;How cool would that be?!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;So, we spent a couple late nights and a weekend here or there and morphed Retrace into a “Swiss Army Knife” for Profiler traces.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One of the things we found ourselves often doing in our tuning work within SQL Server development was running a &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms162833.aspx"&gt;&lt;FONT face="Times New Roman" color=#800080 size=4&gt;SQLDiag&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt; collection immediately before doing something we wanted to measure on the server, then loading the Profiler traces it collected via Retrace.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Given Retrace’s one-stop-shopping nature, we thought it made sense to build that functionality into Retrace, so we added a command line option to Retrace to allow it to call SQLDiag automatically before a load operation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;When it was all said and done, Retrace knew how to collect Profiler traces, to load those traces into a performance warehouse on the server, and to run reports over that warehouse.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We had a simple little console app that automated many of the tasks we found ourselves doing over and over as we tuned this or that component in our day jobs.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;Summary&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;Retrace knows how to do three basic things:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in" type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=4&gt;Collect a SQL Profiler trace (using the SQLDiag utility that ships with SQL Server 2005 and later)&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=4&gt;Load Profiler traces into a data warehouse that resides in a SQL Server database.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These can be traces it collects via SQLDiag or traces from other sources (e.g., SQL Profiler)&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=4&gt;Show reports listing the top &lt;I style="mso-bidi-font-style: normal"&gt;N&lt;/I&gt; most expensive queries from the trace files loaded into the warehouse&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;Examples&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To load a trace file into a data warehouse on the default SQL Server instance using Windows authentication:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -i mytrace.trc&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To load a trace file into a data warehouse and display the GUI (Reporting Services-based) reports:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -i mytrace.trc -r&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To load a trace file into a data warehouse and display the top &lt;I style="mso-bidi-font-style: normal"&gt;N&lt;/I&gt; queries report in HTML format:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -i mytrace.trc -f html -r&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To start a Profiler trace collection, then load the collected trace file(s) into a data warehouse:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -c TRACE&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To start a Profiler trace collection, load the collected trace file(s) into a data warehouse, and then display the GUI reports:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -c TRACE -r&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To load all trace files in a given folder into a data warehouse and display the GUI reports:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -i myfolder\*.trc -r&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To load a trace file into a data warehouse and write the top &lt;I style="mso-bidi-font-style: normal"&gt;N&lt;/I&gt; queries report to an XML file:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -i mytrace.trc -f xml_full -o myreport.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To display the GUI reports (following a previous load of trace data into the warehouse):&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -r&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;To load a trace file into a database other than [retrace] or to a non-default SQL Server instance:&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;&lt;FONT size=4&gt;retrace -d mydatabase -S myserver\myinstance -i mytrace.trc&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;As you can see, you can load one or more trace files from the command line.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These can be ones you instructed the tool to collect via SQLDiag or ones you’ve collected through other means (e.g., SQL Profiler).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can then display reports showing the top &lt;I style="mso-bidi-font-style: normal"&gt;N&lt;/I&gt; most expensive queries in a variety of formats (&lt;STRONG&gt;HTML, XML, PDF, Excel, JPEG&lt;/STRONG&gt;, etc.)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The default report format is a simple GUI report that makes use of client-side &lt;STRONG&gt;Reporting Services&lt;/STRONG&gt; report files (you don’t need to have Reporting Services itself installed).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;Customizing Retrace&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;You can customize Retrace’s output in a variety of ways.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can customize the RDLC files that make up the reports shown in the Retrace GUI if you like.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And you can also modify the XML stylesheet (XSL file) that Retrace uses to translate its XML output into HTML when HTML output format is selected.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This stylesheet is named &lt;STRONG&gt;retrace.xsl&lt;/STRONG&gt; and resides in the &lt;STRONG&gt;XML&lt;/STRONG&gt; subfolder.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here’s what the HTML output looks like by default:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /&gt;&lt;v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;IMG title="Retrace HTML output" style="WIDTH: 628px; HEIGHT: 399px" height=399 alt="Retrace HTML output" src="http://khenzden.googlepages.com/retrace_html.png" width=628 mce_src="http://khenzden.googlepages.com/retrace_html.png"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;You can customize the T-SQL script Retrace uses to create its data warehouse and reporting stored procedures by modifying the &lt;STRONG&gt;TraceAnalysis.sql&lt;/STRONG&gt; script file in the &lt;STRONG&gt;Scripts&lt;/STRONG&gt; subfolder.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Be careful here, however, as modifying the objects in this script may prevent Retrace from being able to display meaningful analysis reports.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;You can also customize the Retrace application itself.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Retrace is a &lt;STRONG&gt;ScriptIt&lt;/STRONG&gt; application.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For those who don’t know what ScriptIt is, it’s a technology developed internally within Microsoft that allows you much of the flexibility you have with scripting tools such as Perl and VBScript with managed code applications.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It combines the ease of deployment and quick modification you see in traditional scripting tools with being able to develop in your favorite managed code language.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It takes advantage of the fact that every machine that has the .NET Framework 2.0 or later installed also has the full MSBuild environment (the toolset used by Visual Studio to compile and build application binaries).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Using ScriptIt, you can modify the source of a managed code application, rebuild it, and redeploy using only the executable—you don’t need to store the source in separate files or keep track of solutions and projects in Visual Studio.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can edit your apps in Notepad if you like, then rebuild them on the spot without need of any other tools.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The current plan is for ScriptIt to be released to the public next year, and you can contact &lt;/FONT&gt;&lt;A href="mailto:vancem@microsoft.com"&gt;&lt;FONT face="Times New Roman" size=4&gt;Vance Morrison&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=4&gt;, its author, if you have any questions about it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once ScriptIt is released, you’ll be able to edit Retrace’s source code and make whatever changes you need without resorting to full-blown application development.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;SQL Nexus&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;I mentioned earlier that SQL Nexus has been released on &lt;/FONT&gt;&lt;A href="http://www.codeplex.com/sqlnexus"&gt;&lt;FONT face="Times New Roman" color=#800080 size=4&gt;CodePlex&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=4&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This means that you can download the current binaries and source code today and extend/use Nexus in your own work.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Read the license agreement over there for details.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We will continue to keep a binary version of TraceBuster available &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/"&gt;&lt;FONT face="Times New Roman" size=4&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=4&gt; in case you’d like to use it with Nexus.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you get Nexus, you have a much more graphical, full-featured performance analysis tool than Retrace was intended to be.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That said, if you like simple, fast command-line tools, you may find Retrace useful.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I wrote a good chunk of both tools, and I think each has its place.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=4&gt;&lt;FONT face="Times New Roman"&gt;Conclusion&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=4&gt;They say necessity is the mother of invention, and I guess necessity is just as responsible for Retrace as are Bart and I.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Retrace was a tool we needed to do our jobs.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It evolved into its current form through the necessity of our both needing a Swiss Army Knife-type Profiler trace tool and our belief that TraceBuster provided useful functionality that we should continue to leverage in our work on the product.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Download it, use it to carve up a few of your own perf problems, and let us know what you think.&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6745075" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/khen1234/attachment/6745075.ashx" length="172852" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/khen1234/archive/tags/nexus/default.aspx">nexus</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Retrace/default.aspx">Retrace</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Profiler/default.aspx">Profiler</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/TraceBuster/default.aspx">TraceBuster</category></item><item><title>Random thoughts on my trip to the conference</title><link>http://blogs.msdn.com/khen1234/archive/2007/09/23/random-thoughts-on-my-trip-to-the-conference.aspx</link><pubDate>Sun, 23 Sep 2007 19:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5080362</guid><dc:creator>khen1234</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/5080362.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=5080362</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;I had a great time on my brief stint in &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;Denver&lt;/st1:City&gt; for the PASS &lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Summit&lt;/st1:place&gt;&lt;/st1:City&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We had a good session and a good crowd, and Kevin Kline did a marvelous job of running the whole thing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He had lots of great questions for me during the interview, and the crowd had many good ones, too.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I hope those of you who attended felt it was worth your time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;One thing that came up during the talk was the status of SQL Nexus and what its future is.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As I said when asked about it:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=3&gt;You can currently download the latest version of SQL Nexus from &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/" mce_href="http://www.sqlnexus.net/"&gt;&lt;FONT face="Times New Roman" size=3&gt;www.sqlnexus.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;For those who don’t know, SQL Nexus is a SQL Server performance analysis tool written by Bart Duncan and me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It loads the diagnostics collected by SQL Server’s SQLDiag facility (and similar tools) into a data warehouse (see the Books Online if you aren’t familiar with SQLDiag), then provides graphs and charts over that data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can use it to find your most expensive queries, troubleshoot performance bottlenecks, investigate blocking, etc.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was originally released on the CD accompanying the book, &lt;I style="mso-bidi-font-style: normal"&gt;&lt;A href="http://www.khen.com/2007/06/sql-server-2005-practical.html" mce_href="http://www.khen.com/2007/06/sql-server-2005-practical.html"&gt;SQL Server Practical Troubleshooting:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Database Engine&lt;/A&gt;&lt;/I&gt;.&lt;BR&gt;&lt;BR&gt;Nexus is something &lt;st1:PersonName w:st="on"&gt;Bart &lt;/st1:PersonName&gt;and I dreamed up nearly seven years ago before Microsoft had released any tools of this kind for SQL Server.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Its influence is evident in similar tools that have appeared since then.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example, many of you are familiar with the ReadTrace tool.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When Bart and I first proposed automated performance analysis to our management within Microsoft, ReadTrace had not yet been released to the public and was merely a trace file splitter used by SQL Server Support—it split Profiler trace files by SPID and wrote them out to separate files.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This facilitated more easily seeing which users were running which queries rather than having to filter on the SPID column in Profiler.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It did not do any analysis of the trace files it read back then—it was intended merely to simplify the job of seeing which users did what and play that work back as necessary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Some time after we’d made our proposal regarding automated performance analysis, some of these ideas found their way into the next release of ReadTrace.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;If you’ve ever wondered about the incongruity between the tool’s name and its analysis feature (which is probably its most useful feature from an end-user perspective), that’s why it’s there—ReadTrace didn’t originally do any analysis.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Similarly, the Data Collector and Management Data Warehouse features in Katmai were influenced by our work with PSSDiag/SQLDiag and SQL Nexus.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(Bart and I have been involved with the DC/MDW project from the start, and &lt;A class="" href="http://blogs.msdn.com/khen1234/archive/2007/06/13/today-is-a-great-day.aspx" mce_href="http://blogs.msdn.com/khen1234/archive/2007/06/13/today-is-a-great-day.aspx"&gt;Bart recently joined the team fulltime&lt;/A&gt;.)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We also know that various third party tools have built on the concepts we originally championed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;From that one seed, lots of goodness has grown, and we couldn’t be happier about it. &lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=3&gt;Bart and I have given Microsoft’s Customer Support Services organization permission to release the source code to SQL Nexus via Microsoft’s &lt;/FONT&gt;&lt;A href="http://www.codeplex.com/" mce_href="http://www.codeplex.com/"&gt;&lt;FONT face="Times New Roman" color=#800080 size=3&gt;CodePlex&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt; site.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Current word is that this should be out internally by Thanksgiving (I don’t know when it will be available publicly on CodePlex, but I would expect it to shortly follow).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;CodePlex, for those of you who don’t know, is Microsoft’s shared source initiative, not unlike SourceForge and similar sites.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Releasing the Nexus source will allow those of you in the user community who are so inclined to help develop and evolve Nexus further.&lt;BR&gt;&lt;BR&gt;A concern we in SQL Server development had about releasing the Nexus source was that we might want to use parts of it in future products.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To that end, we’ve asked CSS not to release the source code to a handful of Nexus components.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;One of these components is Nexus’ TraceBuster facility.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;TraceBuster, you may recall, is the Profiler trace loader in Nexus.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It performs a similar function to the ReadTrace utility some of you may be familiar with, but differs in certain ways:&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;UL style="MARGIN-TOP: 0in" type=circle&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;FONT face="Times New Roman" size=3&gt;Like the rest of Nexus, TraceBuster is written in managed code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This means it integrates more seamlessly and more efficiently with the rest of the architecture.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Nexus offers a pluggable architecture wherein you can add new loaders to import diagnostic data into the data warehouse by merely editing an XML file or, for more involved work, by creating a simple managed code assembly and dropping it into a folder.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can easily implement new reports by designing them with the Reporting Services designer (in Visual Studio, for example) and dropping them into Nexus’ custom reports folder.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;TraceBuster reads Profiler trace files, normalizes the query text it finds in them by removing literals, and loads all this into the data warehouse.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It also includes several reports for analyzing the most expensive queries in a workload, drilling into those queries, gauging their cost using a variety of metrics, etc.&lt;BR&gt;&lt;BR&gt;While we also built a Nexus loader for ReadTrace, ReadTrace is not managed code and is a console app rather than an assembly, so the integration isn’t quite as efficient or seamless.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Nexus loader for ReadTrace must shell to a separate application rather than running it in the Nexus process itself as happens with TraceBuster.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;FONT face="Times New Roman" size=3&gt;TraceBuster does not require the code it analyzes to be fully parseable.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This means that it’s more tolerant of the broken T-SQL sometimes seen in Profiler traces.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Because of the vagaries of networks and SQL Server’s trace architecture, bad T-SQL in Profiler traces is more common than you might think.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Missing quotes, truncated statements, missing pair members—these are not that uncommon in trace files.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Utilities that analyze the T-SQL in trace files must be more tolerant of anomalies in it than, say, the database engine would be.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;TraceBuster didn’t begin as a full T-SQL parser that was then special-cased to handle all the eccentricities of traced T-SQL.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It began as a no-frills “literal identifier” that merely replaces literals in query text with generic parameter markers so that you can easily compare instances of the same query with different filter values.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It does not know and does not care whether the code it examines is perfectly intact.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It does no more and no less than exactly what it needs to in order to provide meaningful query cost analysis.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This makes it an order of magnitude simpler and more robust than full parser-based solutions.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level2 lfo1; tab-stops: list 1.0in"&gt;&lt;FONT face="Times New Roman" size=3&gt;TraceBuster uses SQL Server’s own facilities for reading Profiler trace files.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It defaults to using SQL Server’s fn_trace_gettable function if the trace files you provide it are on the server machine (or accessible by it) and falls back on the SMO facility for reading trace files if fn_trace_gettable can’t get to them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It never directly accesses the trace files themselves.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This means that TraceBuster is immune to file format changes across releases.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It does not need (or want) intimate knowledge of the Profiler trace file format.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The file format changed between SQL Server 2000 and SQL Server 2005, but the same version of TraceBuster can read trace files written by either release because it uses SQL Server’s built-in facilities for doing so.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=3&gt;Given all this and the fact that TraceBuster won’t be included in CSS’s CodePlex release of Nexus, you might be wondering whether you need TraceBuster and how you can get it after CSS releases the new version.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You’ll have to decide for yourself whether you need TraceBuster.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Tentatively, CSS plans to release a new version of ReadTrace that can read SQL Server 2005 Profiler trace files around the same time Nexus is released via CodePlex.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;ReadTrace and TraceBuster provide much of the same functionality, so it is unlikely that you would want to use both of them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And though they are similar, there are important differences between them, as well.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;If you decide that you want to continue to use TraceBuster once it has been removed from Nexus, you can get the binaries (no source) from &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/" mce_href="http://www.sqlnexus.net/"&gt;&lt;FONT face="Times New Roman" size=3&gt;www.sqlnexus.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;, the same site that will host Nexus itself until CSS releases it via CodePlex.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The specific link is &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/download/tracebuster/TraceBuster.zip" mce_href="http://www.sqlnexus.net/download/tracebuster/TraceBuster.zip"&gt;&lt;FONT face="Times New Roman" size=3&gt;http://www.sqlnexus.net/download/tracebuster/TraceBuster.zip&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; If that link doesn't work, try this one:&amp;nbsp; &lt;A href="http://khenzden.googlepages.com/TraceBuster.zip"&gt;http://khenzden.googlepages.com/TraceBuster.zip&lt;/A&gt;.&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;I know all of this may be a bit confusing, so let me net it out:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=3&gt;The current version of SQL Nexus (including the TraceBuster component) is available today, without source code, via &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/" mce_href="http://www.sqlnexus.net/"&gt;&lt;FONT face="Times New Roman" size=3&gt;www.sqlnexus.net&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It provides a rich performance analysis suite for SQL Server, including the type of Profiler trace analysis you may have done with ReadTrace in the past.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is functionally on par with the source-code version of Nexus that CSS plans to release via CodePlex.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you don’t plan to make use of the Nexus source code, there’s no reason to wait for the CodePlex release.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can get what you need today.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=3&gt;The next version, due to be released internally by CSS around Thanksgiving and sometime thereafter as source code via CodePlex, won’t include TraceBuster because CodePlex releases are necessarily source code-oriented, and the SQL Server development team has reserved the right to include pieces of TraceBuster in future products.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It will, however, include support for ReadTrace (which should be released by CSS concurrently), a tool that performs much the same function, but that is not as well integrated with Nexus.&lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;FONT face="Times New Roman" size=3&gt;If you still want to use TraceBuster after the new version of Nexus has been released, it will be available &lt;/FONT&gt;&lt;A href="http://www.sqlnexus.net/download/tracebuster/TraceBuster.zip" mce_href="http://www.sqlnexus.net/download/tracebuster/TraceBuster.zip"&gt;&lt;FONT face="Times New Roman" size=3&gt;here&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt; or &lt;A class="" href="http://khenzden.googlepages.com/TraceBuster.zip" mce_href="http://khenzden.googlepages.com/TraceBuster.zip"&gt;here&lt;/A&gt; in binary form (no source), just as it is today. Once you’ve installed the CodePlex Nexus release, all you’ll need to do is copy the TraceBuster assembly and the included reports to the appropriate folders.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There’s a readme file in the zip that provides specifics.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When you then restart Nexus, you’ll see TraceBuster and its reports available in the GUI.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;So, anyway, I had a good, if brief, PASS trip, and enjoyed meeting those of you who stopped by.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Thanks for all the great questions during the interview, and I hope to run into you again in the future.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;&lt;U&gt;A funny thing that happened at the Avis counter at the airport:&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Guy at the counter&lt;/B&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Sorry, sir, the economy car you reserved isn’t available.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We’ll have to upgrade you free of charge to a midsize.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Is that okay?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Me&lt;/B&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Okay, that’s fine.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;By the way, where’s the men’s room?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Guy&lt;/B&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;funny look on his face&amp;gt; Is there something &lt;I style="mso-bidi-font-style: normal"&gt;I&lt;/I&gt; could help you with?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Me&lt;/B&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Uh, no.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Just need the men’s room, thanks.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Guy&lt;/B&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;a little peeved&amp;gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Okay, just a moment.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;then takes my paperwork and disappears through door #3 behind the counter&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Me&lt;/B&gt;:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;a bemused look on my face, I’m wondering what the heck is up.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I scan the place looking for hidden cameras&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;It then occurs to me that the guy believes I’m not happy about the car switch and thinks I’ve requested a &lt;I style="mso-bidi-font-style: normal"&gt;manager&lt;/I&gt; rather than a &lt;I style="mso-bidi-font-style: normal"&gt;men’s room&lt;/I&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Whew!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I finally understand why he wanted to help :-)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;I then tell the six women working the counter what the situation is.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We’re all laughing hysterically by the time the guy returns with the manager.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He is nonplussed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;Oh yeah, and the car I ended up with was the new, improved, quite sporty Dodge Charger of &lt;I style="mso-bidi-font-style: normal"&gt;Dukes of Hazzard&lt;/I&gt; fame.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Me likey—this one is a worthy heir to its muscle car forebears.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The one thought that kept going through my mind as I zipped around &lt;st1:place w:st="on"&gt;&lt;st1:City w:st="on"&gt;Denver&lt;/st1:City&gt;&lt;/st1:place&gt; in the Charger was:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;I style="mso-bidi-font-style: normal"&gt;I gotta get me one of these&lt;/I&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5080362" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/khen1234/archive/tags/nexus/default.aspx">nexus</category><category domain="http://blogs.msdn.com/khen1234/archive/tags/pass/default.aspx">pass</category></item><item><title>I'll be at the PASS Summit in Denver</title><link>http://blogs.msdn.com/khen1234/archive/2007/09/18/i-ll-be-at-the-pass-summit-in-denver.aspx</link><pubDate>Tue, 18 Sep 2007 21:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4986805</guid><dc:creator>khen1234</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/4986805.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=4986805</wfw:commentRss><description>&lt;P&gt;I'm being interviewed on stage Friday afternoon from 2:30-3:45 by PASS president Kevin Kline (current session title is "SQL Server Q&amp;amp;A," but I think they'll be changing it).&amp;nbsp; Topics we'll cover will include my background, where SQL Server is headed, what I've been working on, the status of the second editions of my Guru's Guide books, etc.&amp;nbsp; As always, I'll have some new goodies that attendees can download after the talk.&lt;/P&gt;
&lt;P&gt;I'd love to meet you, so stop by if you get a chance.&amp;nbsp; If you want a book signed, feel free to bring it with you.&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4986805" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/khen1234/archive/tags/pass/default.aspx">pass</category></item><item><title>Today is a great day</title><link>http://blogs.msdn.com/khen1234/archive/2007/06/13/today-is-a-great-day.aspx</link><pubDate>Thu, 14 Jun 2007 02:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3281407</guid><dc:creator>khen1234</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/3281407.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=3281407</wfw:commentRss><description>&lt;p&gt;...and in honor of it, I'm going to be especially cryptic and give you a little word puzzle--an anagram:&lt;/p&gt;&lt;p&gt;
Catch Meek&lt;br&gt;&lt;/p&gt;&lt;p&gt;The solution I have in mind for this one pretty much sums up how I feel about today.&amp;nbsp; It's a great day :-)&amp;nbsp;&lt;/p&gt;&lt;p&gt;A hint for those watching at home:&amp;nbsp; 4nodcustody&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3281407" width="1" height="1"&gt;</description></item><item><title>Celko on Celko</title><link>http://blogs.msdn.com/khen1234/archive/2007/04/15/celko-on-celko.aspx</link><pubDate>Mon, 16 Apr 2007 03:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2149567</guid><dc:creator>khen1234</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/2149567.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=2149567</wfw:commentRss><description>&lt;P&gt;I'm starting a little series here featuring interviews with industry luminaries.&amp;nbsp; I figured people might like to hear what they have to say.&amp;nbsp; My first subject is Joe Celko.&lt;/P&gt;
&lt;P&gt;Q1:&amp;nbsp; Tell us a little about yourself, in case somebody does not know you.&lt;/P&gt;
&lt;P&gt;A1:&amp;nbsp; I was a member of the ANSI X3H2 Database Standards Committee from 1987 to 1997 and helped write the ANSI/ISO SQL-89 and SQL-92 standards.&amp;nbsp; I had been writing about Software Engineering in the trade press for years, so I just switched over to writing about the SQL standards as they emerged.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Two decades later, I have six books -- #7 is in the works now -- and around 800 columns in the computer trade and academic press, mostly dealing with data and databases.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Q2:&amp;nbsp; What trends do you see in the Database Field?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;A2:&amp;nbsp; The obvious one is that databases are getting bigger.&amp;nbsp; Just a few years ago, nobody used the prefix "Peta-" on anything in IT.&amp;nbsp; A Terabit was huge!&amp;nbsp; Today, you are just starting to hear about Exabytes (EB) and worse!&lt;/P&gt;
&lt;P&gt;Why are databases getting bigger?&amp;nbsp; It's not just more data; it is also more data sources.&amp;nbsp; I have been teaching an intro RDBMS Design course on line for MySQL AB for the past few months.&amp;nbsp; One of the Power Point slides shows some of the storage engines they can sit on top of.&amp;nbsp;&amp;nbsp; There are well over a dozen options from tiny embedded databases to federated systems.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Another cause is that more and more programmers are working with a database.&amp;nbsp; There was a survey in the trade press this month that said about 60% of all developers are using a database today; it used to be about 40%&amp;nbsp; in their last survey.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Q3:&amp;nbsp; So how can we deal with all this extra data?&lt;/P&gt;
&lt;P&gt;A3:&amp;nbsp; The first thing is to get metadata in place.&amp;nbsp; Without it, you cannot control all of the data sources pouring into your enterprise.&amp;nbsp; In the old days, we did not have Google so finding industry standards was a lot of leg work and mountains of paper.&amp;nbsp; Today, you can look up anything in less than a day.&amp;nbsp;&amp;nbsp; When I am teaching a college RDBMS class, I hand out 3x5 cards with the something that you might want to model in a database with a standardized scale of some kind -- shoe sizes, tires, whatever.&amp;nbsp;&amp;nbsp; Nobody has ever failed and they usually come back with several scales or standards.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Q4:&amp;nbsp; What is the big news in hardware?&lt;/P&gt;
&lt;P&gt;A4:&amp;nbsp; Parallelism.&amp;nbsp; We are looking at multicore processors being the normal state of affairs in the next decade.&amp;nbsp; Intel has already announced 80 processors on a single chip.&amp;nbsp;&amp;nbsp; But the problem is that we do not have the software for that architecture.&amp;nbsp; This month's DR. DOBBS JOURNAL has an article about writing a graph searching algorithm for the IBM Cell processor.&amp;nbsp; The code is much larger than the traditional "mono-processor" solution but it runs orders of magnitude faster.&amp;nbsp; The authors had to handle all of the processor and register assignments by hand.&amp;nbsp; You need to have a compiler that will do that for you.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;SQL is the only major language that has a history of parallelism because it is based on sets.&amp;nbsp; You can partition a set, do quite a few things with each partition, then union the results back together to get an answer for the whole set.&amp;nbsp;&amp;nbsp; This is the basis for several VLDB products, such as Teradata, Kognitio and SAND engines.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Remember "Maxwell's Demon" from physics?&amp;nbsp; It is an imaginary creature that only permits faster moving molecules to go past it and thus can keep things hot on its side of the room.&amp;nbsp; Well, we can have "Celko's Demon" -- a processor devoted to a single row or column or partition in a table.&amp;nbsp; When a query comes into the engine, each demon decides if he needs to ignore it or to pull up his data and pass it over to a higher level demon.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Q5:&amp;nbsp; What about end users?&lt;/P&gt;
&lt;P&gt;A5:&amp;nbsp; There are more of them, too.&amp;nbsp; Do you use a phone book to look up a telephone number or do you Google it?&amp;nbsp; How many electronic newspaper and magazine editions do read every day?&amp;nbsp; How do you shop now?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Your preferences and history are part of any serious commercial shopping site.&amp;nbsp; Every one of us has gotten an email from Amazon.com telling us that people who bought a copy of some book also liked another book.&amp;nbsp; It is the same with NetFlixs and every on-line company.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;This kind of volume will have another hardware effect.&amp;nbsp; Hard drives are going to die and be replaced by solid state devices.&amp;nbsp; Right now I have a 512 Kbytes memory stick I use to hold my PowerPoint slides.&amp;nbsp; The stick was a give-away at a trade show, not a personal purchase.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;If I have tens or hundreds of thousands of end users trying to get information from my database, at pretty much the same time, then physically moving a read/write head across magnetic storage media is not going to work.&amp;nbsp;&amp;nbsp; I have to get access at the speed of electricity or light, not at electric motor speeds.&amp;nbsp; If I cannot get a fast enough response, then the customer is not going to stay around and wait.&amp;nbsp; In the old days, when we were using telephones with modems to process credit cards, the end users would hang up and re-dial if they did not get some signal in 3 seconds.&amp;nbsp; One solution was to have red light or tone that went on in 1-2 seconds; it had nothing to do with the connection, but it made the end user feel good.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We are already hitting the limits today; that is why sites are mirrored.&amp;nbsp; But at some point, you cannot keep throwing hardware at the problem.&amp;nbsp; You need to throw a different kind of hardware at it.&amp;nbsp; Solid state devices also have another advantage over hard drives; no moving parts to break.&amp;nbsp; We have gotten very good at making reliable chips.&amp;nbsp; Right now, solid state disk replacements are relatively small and expensive.&amp;nbsp; Moore's Law will take care of the size problem and the need to have a fast response time will make any extra cost worth it.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Q6:&amp;nbsp; You’re sometimes perceived as a bit of an ANSI SQL zealot and as being a bit acerbic toward people on newsgroups who don’t agree with you.&amp;nbsp; Do you think this is a fair perception?&amp;nbsp; Would you change it if you could?&amp;nbsp; What do you have to say to your critics about it?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;A6:&amp;nbsp; It a fair perception and it is deliberate.&amp;nbsp; My wife is a Soto Zen Monk who could beat you with a stick, so I am a pussy cat.&amp;nbsp; I do it to get the attention of the poster.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Look at most of the posters in the newsgroups.&amp;nbsp;&amp;nbsp; They do not post DDL -- often because they have no idea what it is -- and invent their own pseudo-code.&amp;nbsp;&amp;nbsp; They have no idea what a spec is, but post requests for ways to implement an approach they have locked into -- and it is usually a non-relational approach at that.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;What we have are some really lazy programmers who want to use the newsgroups to do their job or homework for them.&amp;nbsp; Even worse, they want to get an instant college education which is not possible in a short reply.&amp;nbsp;&amp;nbsp; The questions they ask can most often be answered by (1) RTFM, well BOL (2) "Try it and see" (3) a quick Google search in the newsgroup to which they are posting.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;What they get instead from most replies is a kludge to get rid of them.&amp;nbsp; If this was a woodworking newsgroup and someone posted "What is the best kind of rocks to pound screws into fine furniture?" are you really helping them when you say "Granite! Use big hunks of granite!"&amp;nbsp;&amp;nbsp; I am the guy who replies with "Your question is bad.&amp;nbsp; Don't you know about screwdrivers?"&amp;nbsp;&amp;nbsp; And I like to remind them that it takes six years to become a Journeyman Union Carpenter in New York State.&amp;nbsp; Not Master, Journeyman.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I began my programming career in the Cold War, doing defense and medical systems.&amp;nbsp; These are fields where bad programming kills the wrong people and you do not get a do-over.&amp;nbsp; I did research on Software Engineering and wrote columns in the trade press on it for years before I became "the SQL Guy" for a living.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I am amazed at the amount of "cowboy coding" I see today.&amp;nbsp; I have even had one guy email me about my "ANSI Standards hang up" telling me that I was just like those Structured Programming bastards that got rid of the GOTO&amp;nbsp; statement .&amp;nbsp; He was arguing for the return of spaghetti code! &lt;/P&gt;
&lt;P&gt;I just made a few bucks inspecting a system that violated the principle of a tiered architecture.&amp;nbsp; Their consultant decided it was faster to format some of the data in back end instead of the front end (leading zeros and UK versus US dates).&amp;nbsp; The results were a very inconsistent database since his stored procedures might not quite match anyone else's, but he might have saved 15 minutes a year in computing time.&amp;nbsp; Wow.&amp;nbsp; &lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2149567" width="1" height="1"&gt;</description></item><item><title>Does rebuilding a clustered index rebuild nonclustered indexes?</title><link>http://blogs.msdn.com/khen1234/archive/2007/02/27/does-rebuilding-a-clustered-index-rebuild-nonclustered-indexes.aspx</link><pubDate>Tue, 27 Feb 2007 21:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1770670</guid><dc:creator>khen1234</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/1770670.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=1770670</wfw:commentRss><description>&lt;P&gt;This came up yesterday with one of our support engineers, so I thought I’d post a brief entry on it.&amp;nbsp; On SQL Server 2005, using ALTER INDEX…REBUILD to rebuild a clustered index &lt;EM&gt;does not&lt;/EM&gt; rebuild its nonclustered indexes by default.&amp;nbsp; If you think about it, it makes perfect sense—the clustered keys, which are the record locators in the NC indexes, aren’t changed merely because you rebuild the index.&amp;nbsp; All rebuilding the index does is lay the pages back down.&amp;nbsp; The rows may move around on the clustered index pages, but we don’t care because the NC indexes don’t use a RID to reference the data; they use the clustered key and have since SQL Server 7.0.&amp;nbsp;&amp;nbsp; Naturally, if you completely drop the clustered index, we have to rebuild the NC indexes because their record locators have to be changed to RIDs.&amp;nbsp; And if you then recreate the clustered index, we have to reverse the process.&amp;nbsp; So, being able to rebuild the clustered index in place is a real performance boon.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Not only can ALTER INDEX rebuild a clustered index in place, this is the default behavior.&amp;nbsp; You have to specify ALL for the index name in order to rebuild all indexes.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1770670" width="1" height="1"&gt;</description></item><item><title>Update to the latest book's CD</title><link>http://blogs.msdn.com/khen1234/archive/2007/02/10/update-to-the-latest-book-s-cd.aspx</link><pubDate>Sat, 10 Feb 2007 07:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1641474</guid><dc:creator>khen1234</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/1641474.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=1641474</wfw:commentRss><description>Many have noted that there are some files missing from the CD accompanying my latest book, &lt;EM&gt;SQL Server 2005 Practical Troubleshooting&lt;/EM&gt;.&amp;nbsp; My apologies for that.&amp;nbsp; We’ve just posted an update to the book’s CD at &lt;A href="http://www.khen.com/sspt.htm"&gt;http://www.khen.com/sspt.htm&lt;/A&gt;.&amp;nbsp; Note:&amp;nbsp; you’re welcome to grab the book’s CD regardless of whether you’ve actually purchased the book—we’re making it available to everyone.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1641474" width="1" height="1"&gt;</description></item><item><title>Origins of khen and foo</title><link>http://blogs.msdn.com/khen1234/archive/2006/12/15/origins-of-khen-and-foo.aspx</link><pubDate>Fri, 15 Dec 2006 22:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1298278</guid><dc:creator>khen1234</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/1298278.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=1298278</wfw:commentRss><description>&lt;P&gt;For those wondering why I use the terms 'khen' and 'foo' so often, here's an article on the etymology of both:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.youcancallmeal.com/type/archives/2006/03/origin_of_the_t.php"&gt;http://www.youcancallmeal.com/type/archives/2006/03/origin_of_the_t.php&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1298278" width="1" height="1"&gt;</description></item><item><title>The new book is out</title><link>http://blogs.msdn.com/khen1234/archive/2006/12/15/the-new-book-is-out.aspx</link><pubDate>Fri, 15 Dec 2006 21:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1298172</guid><dc:creator>khen1234</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/1298172.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=1298172</wfw:commentRss><description>I've mentioned before that I had a new book coming out.&amp;nbsp; It's finally available on Amazon.&amp;nbsp; Again,&amp;nbsp;I didn't write this one; I was just its editor.&amp;nbsp; It was written by a "dream team" of developers from the SQL Server dev team and support engineers from Microsoft Customer Support Services.&amp;nbsp; The focus of the book is on troubleshooting issues with the SQL Server database engine, and it's my hope that it will be the "go to" reference for people working through issues with the engine.&amp;nbsp; You can find the book &lt;A class="" href="http://www.amazon.com/SQL-Server-2005-Practical-Troubleshooting/dp/0321447743/sr=8-1/qid=1165872513" target=_blank mce_href="http://www.amazon.com/SQL-Server-2005-Practical-Troubleshooting/dp/0321447743/sr=8-1/qid=1165872513"&gt;here&lt;/A&gt;.&amp;nbsp; &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1298172" width="1" height="1"&gt;</description></item><item><title>SQL Server Support is at the PASS Summit again this year</title><link>http://blogs.msdn.com/khen1234/archive/2006/11/13/sql-server-support-is-at-the-pass-summit-again-this-year.aspx</link><pubDate>Tue, 14 Nov 2006 00:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1071745</guid><dc:creator>khen1234</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/1071745.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=1071745</wfw:commentRss><description>&lt;P&gt;My friends in Microsoft’s Product Support Services (PSS) group (aka SQL Server Support) are speaking again this year at the &lt;A class="" href="http://www.sqlpass.org/events/summit06/" target=_blank mce_href="http://www.sqlpass.org/events/summit06/"&gt;PASS Community Summit&lt;/A&gt;.&amp;nbsp; They’re doing some main conference sessions, the PSS Boot camp, and putting on the PSS Service Center again (where attendees can work through hands-on labs designed by PSS that demonstrate how to troubleshoot SQL Server issues).&amp;nbsp; I’d encourage you to make your way to their offerings if you possibly can.&amp;nbsp; They’re always some of the best sessions and content at the conference.&lt;/P&gt;
&lt;P&gt;They say the ultimate measure of success with an initiative is whether it survives the departure of the person or people who started it.&amp;nbsp; Since its inception in 2003, I had coordinated the involvement of PSS in the PASS Summit.&amp;nbsp; This year, I turned over the reigns to a group consisting of Todd DeDecker, a Group Manager within SQL Server Support, &lt;A class="" href="http://blogs.msdn.com/bartd/" target=_blank mce_href="http://blogs.msdn.com/bartd/"&gt;Bart Duncan&lt;/A&gt;, an Escalation Engineer within the support group and a good friend, and Haydn Richardson in SQL Server marketing.&amp;nbsp; I’d long felt that PSS mgmt and the SQL Server marketing folks (who handle the product group’s involvement in other conferences) should work together to handle PSS’ presence at the conference.&amp;nbsp; They had the charter and resources to do so, and I knew they could go to Bart for any questions they might have of a technical nature.&amp;nbsp; Once the initiative progressed from toddlerhood to adolescence, I felt it was ready to survive without my involvement.&lt;/P&gt;
&lt;P&gt;You might find some of the history behind this initiative fairly intriguing.&amp;nbsp; I’ve not written much publicly about it in the past, so I’ll jot down my thoughts and memories before I forget them in case you find them interesting.&amp;nbsp; I think it’s a good story of how fresh thinking and grassroots initiatives can succeed, even in a big company like Microsoft.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The idea of involving PSS in the Summit originally occurred to me shortly after I joined Microsoft and realized PSS was fairly out of touch with the user community.&amp;nbsp; For a customer-facing org, this seemed awfully strange to me.&amp;nbsp; Day in and day out, PSS spent more time with customers than the product team, but even the senior-most PSS folks couldn’t name more than one or two MVPs, had rarely if ever posted in the community newsgroups, and had never even been to the Summit, let alone spoken at it.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The same was true going the other direction.&amp;nbsp; Many in the community knew people on the dev team and regularly spoke to them at conferences or exchanged messages over newsgroups and via email.&amp;nbsp; There was and still is a nice synergy between SQL Server dev and the SQL Server user community.&amp;nbsp; For the most part, that didn’t exist between PSS and the user community, and this really puzzled me.&lt;/P&gt;
&lt;P&gt;So, I began to think about how to remedy it.&amp;nbsp; I wanted to find a way to “hook up” PSS and PASS, to get them to know each other.&amp;nbsp; It seemed obvious to me that there was mutual benefit for the support folk and for the user community in doing this:&amp;nbsp; The support people could learn more about how MS customers actually used SQL Server in the wild (versus mostly seeing just the support issues related to it), and the community could learn more about many of the fine people in SQL Server Support, many of whom had been taking customer calls and helping the dev team find bugs in the product for several years.&amp;nbsp; They could even learn to troubleshoot some of their own issues without having to call tech support in the first place.&lt;/P&gt;
&lt;P&gt;My first thought was to somehow involve PSS in the PASS Summit.&amp;nbsp; I’d spoken at the Summit for several years prior, and I thought it would be the perfect opportunity to let PSS and PASS get to know one another.&amp;nbsp; Early in 2003, I approached PASS about this possibility, and we began talking about how to involve PSS in that year’s Summit in Seattle.&lt;/P&gt;
&lt;P&gt;Initially, I had thought that a pre-con workshop would be the most appropriate forum for PSS to get to know the community better and to demonstrate its wealth of troubleshooting knowledge, but PASS felt that regular conference sessions would be more appropriate because they would allow the PSS involvement to be spread out more across the entire conference.&amp;nbsp; More people would be exposed to PSS, and PSS would get to talk to more customers.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I also wanted a forum where customers could bring their support issues to PSS and receive hands-on help solving them.&amp;nbsp; It occurred to me that this would also be a perfect opportunity to show people how to troubleshoot their own problems—along the lines of the “teach a man to fish instead of give him a fish” philosophy.&amp;nbsp; I’d long felt that too much of the knowledge related to the SQL Server troubleshooting domain was locked up in PSS; I felt that much of it belonged in the hands of customers.&amp;nbsp; So, having a forum where the free exchange of this type of knowledge could occur was very attractive to me.&amp;nbsp; From this, the idea of the PSS Service Center was born.&amp;nbsp; The folks at PASS and I talked several times about all of this, and I got the green light to explore the possibilities with SQL Server Support. &lt;/P&gt;
&lt;P&gt;I talked to several folks about possibly being involved.&amp;nbsp; The first person I asked about it was Bart Duncan.&amp;nbsp; Bart talked to his manager at the time who repeated the age-old refrain that they’d be generally supportive of him doing something like this, but funding might be a problem.&amp;nbsp; Others I talked to were nervous about getting up in front of people, especially customers who might pummel them with support issues in a conference session free-for-all.&amp;nbsp; One who &lt;EM&gt;was &lt;/EM&gt;receptive to the idea was Bob Ward, an escalation engineer within the support group, and he got his management to agree to fund him to participate in the conference.&amp;nbsp; So, we had at least one support engineer from PSS signed up, and he had funding to go, so all we needed was a few more people, and we’d have something we could reasonably call a PSS delegation.&amp;nbsp; I was eventually able to enlist the help of a couple of other Seattle-area support engineers, and off PSS’ modest PASS Summit contingent went—setting sail on its first voyage into the uncharted waters of SQL Server user community involvement.&lt;/P&gt;
&lt;P&gt;At the conference in Seattle, PASS generously set aside a room just for Service Center use and allotted lab machines for it.&amp;nbsp; Though small by this year's standard, it was a start, and attendees loved the Service Center.&amp;nbsp; PSS also did conference sessions and was involved in several mixers and other social events.&amp;nbsp; All in all, it was fun to watch.&amp;nbsp; Things had worked out as PASS and I had originally envisioned.&amp;nbsp; We got to see PSS interact with customers on a one-on-one basis just as we’d hoped.&amp;nbsp; Customers learned firsthand just how good some of the PSS folks were at their jobs.&amp;nbsp; Watching the rapport that developed between them assured me that the hassles of getting it all going was worth it.&lt;/P&gt;
&lt;P&gt;We did much the same thing the next year at the 2004 Summit in Orlando.&amp;nbsp; PSS was able to involve a couple of new people, and the regular sessions and Service Center came off with aplomb.&amp;nbsp; The relationship between PSS and the user community continued to grow.&lt;/P&gt;
&lt;P&gt;The 2005 Summit was to be held in the Dallas area, and it occurred to me that we might be able to leverage the fact that Microsoft’s largest SQL Server support site was DFW-based in order to increase PSS’ participation in the conference even further.&amp;nbsp; The PASS folks and I discussed this at length and eventually came up with two additional ways for PSS to be involved in the conference.&amp;nbsp; The first was an intense pre-con session wherein the support folks could cover how they approached solving hard problems at length.&amp;nbsp; This would be more in-depth and longer than anything they’d done in regular conference sessions in the past.&amp;nbsp; The PASS folks loved this idea and named it the “PSS Boot Camp.”&amp;nbsp; It was a big hit with attendees and has been a staple of three shows now—the 2005 Summit, the PASS European Summit in February of this year, and this year’s Summit in Seattle.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The second idea I had for furthering the PSS involvement in the 2005 PASS Summit was to have a seminar at the MS campus for the SQL Server MVPs.&amp;nbsp; PASS chartered busses over to the campus one evening during the conference, and the MVPs got to spend some quality time with several members of the support team.&amp;nbsp; I was proud of our people and happy to have been a part of making it happen.&amp;nbsp; Having the conference in Dallas had presented some unique opportunities for those of us in the area, and I felt good about the fact that we’d tried to take advantage of those as best we could.&lt;/P&gt;
&lt;P&gt;This year, they aren’t doing the MVP night function, but SQL Server Support is still involved in all the other ways I’ve mentioned.&amp;nbsp; The boot camp has been expanded to two days, the Service Center is once again online, and the support folks have several main conference sessions.&amp;nbsp; I’d encourage you to attend some of their sessions if you possibly can.&amp;nbsp; I’m sure they’d like to meet you, and I’m sure you’ll find it’s time well-spent.&lt;/P&gt;
&lt;P&gt;I think PSS' ongoing involvement in the Summit is a wonderful success story for the user community and especially for PASS.&amp;nbsp; None of this would have been possible had the PASS folks not enthusiastically welcomed fresh ideas and worked hard to make the whole thing happen.&amp;nbsp; None of it would have survived had the user community not embraced it, and PASS was a big part of that.&amp;nbsp; I always considered the PASS folks my partner in helping connect PSS and the user community, and much of the credit for all of it coming together rightfully belongs to them.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1071745" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/khen1234/archive/tags/pass/default.aspx">pass</category></item><item><title>Normalizing query text</title><link>http://blogs.msdn.com/khen1234/archive/2006/10/22/normalizing-query-text.aspx</link><pubDate>Sun, 22 Oct 2006 17:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:857274</guid><dc:creator>khen1234</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/857274.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=857274</wfw:commentRss><description>&lt;P&gt;A conversation with a friend over email got me to thinking that this info might be useful to a few of you.&lt;/P&gt;
&lt;P&gt;It’s common for SQL Server application developers to want to “normalize” the query text returned in a Profiler trace such that executions of the same query with different parameters can be easily compared with one another and aggregated together.&amp;nbsp; This allows the performance of a query to be more easily tracked over time and allows the consequences of using different parameters with it to be quantitatively measured.&lt;/P&gt;
&lt;P&gt;Normalizing the text of a query amounts to replacing the literals in it with parameter markers.&amp;nbsp; It amounts to flattening the parameter values for the query such that the statistics (e.g., duration, CPU used, reads, and writes) from different executions of the query can be aggregated together and compared against one another.&amp;nbsp; So, take this query for example:&lt;/P&gt;
&lt;P&gt;SELECT * FROM foo WHERE id=4&lt;/P&gt;
&lt;P&gt;Here, the parameter is “4”, so, parameterized, the query would look something like this:&lt;/P&gt;
&lt;P&gt;SELECT * FROM foo WHERE id=@p1&lt;/P&gt;
&lt;P&gt;Then, every other execution of this query, regardless of the value on the right side of the equal sign, would reduce down to this same basic form.&amp;nbsp; This is the same basic form you might see in the procedure cache if you viewed dm_exec_cached_plans and dm_exec_sql_text.&lt;/P&gt;
&lt;P&gt;There are a couple of approaches commonly used to normalize queries.&amp;nbsp; The first, and simplest, is to take a substring of the query in question and try to trim it down to its bare essence.&amp;nbsp; I’d guess most people looking at this sort of thing take this approach.&amp;nbsp; The problem with it is that parameters can appear virtually anywhere, especially when you consider subqueries, derived columns, and the like.&amp;nbsp; There’s no set substring length that you can always take to accurately normalize a query.&amp;nbsp; Thus, this approach is extremely error-prone and of limited usefulness in truly normalizing the queries from a trace.&lt;/P&gt;
&lt;P&gt;Another approach is to parse the T-SQL text using your own parser.&amp;nbsp; This solves the problems of the simplistic substring approach, but unfortunately introduces some of its own.&amp;nbsp; First, parsers are notoriously difficult to write.&amp;nbsp; Even with the help of tools like Lex and Yacc, you still have a fair job on your hands to create a language parser, especially for a language as unwieldy as Transact-SQL.&amp;nbsp; Second, most SQL parsers available don’t handle the extensions Microsoft has made to Transact-SQL that well.&amp;nbsp; There are many free parsers out there, as well as some available for minimal charge, and most, if not all, have problems with Transact-SQL’s extensions.&amp;nbsp; Third, even for those that may fully support Transact-SQL at a particular point in time, they can quickly become outdated as the product evolves.&amp;nbsp; They have to keep pace with the evolution of SQL Server in general and with the T-SQL language in particular, and they may not be able to do that.&amp;nbsp; Consider, for example, the kind of monkey wrench supporting CTEs would throw into such a facility.&amp;nbsp; Last, but not least, it takes time to parse code.&amp;nbsp; With a trace of any size, even a highly efficient parser would need significant time to parse it.&amp;nbsp; Full-blown parsing is a bit overkill, anyway.&amp;nbsp; What you really need is a literal identifier.&lt;/P&gt;
&lt;P&gt;Fortunately, SQL Server 2005 offers a facility that partially solves the problem.&amp;nbsp; The &lt;STRONG&gt;sp_get_query_template&lt;/STRONG&gt; stored proc takes the text of a query as a parameter, then returns the normalized text and the parameter list as output parameters.&amp;nbsp; Although it was not designed for general query normalization, this gets you as close as you currently can get to invoking SQL Server’s own code to normalize your queries.&lt;/P&gt;
&lt;P&gt;Unfortunately, the proc has several limitations: it doesn’t handle multi-statement batches, will throw a 207 error if your query text references a non-existent column in an existing table (just as a CREATE PROC will), and will throw an error when a statement doesn’t have any parameters (e.g., SELECT * FROM sys.objects).&amp;nbsp; But, it’s part of the way there.&amp;nbsp; For simple query parameterization, it’s probably the best way to go for now.&amp;nbsp; In concert with some substring trickery, this might get you most of what you need to do some basic query performance aggregation.&lt;/P&gt;
&lt;P&gt;You can use sp_get_query_template against the TextData column returned by fn_trace_gettable to generate some useful query performance aggregations over time.&amp;nbsp; You can easily identify your &lt;EM&gt;N&lt;/EM&gt; most expensive queries in terms of CPU used, reads, writes, duration, etc.&amp;nbsp; And you can then drill into individual executions from the trace to see what sets of parameters may be more or less likely to be the cause of poor performance from the query.&amp;nbsp; This can then inform your query and indexing design decisions.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=857274" width="1" height="1"&gt;</description></item><item><title>Book sample chapter available for download</title><link>http://blogs.msdn.com/khen1234/archive/2006/10/20/book-sample-chapter-available-for-download.aspx</link><pubDate>Fri, 20 Oct 2006 18:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:850149</guid><dc:creator>khen1234</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/khen1234/comments/850149.aspx</comments><wfw:commentRss>http://blogs.msdn.com/khen1234/commentrss.aspx?PostID=850149</wfw:commentRss><description>I mentioned in my last post here that we have a new book coming out in December that focuses on troubleshooting issues with broken SQL Servers.&amp;nbsp; We've decided to release a sample chapter from the book (that has not yet been proofread) so that people can see what's coming.&amp;nbsp; You can find that chapter here:&amp;nbsp; &lt;A href="http://www.khen.com/sspt04.pdf"&gt;http://www.khen.com/sspt04.pdf&lt;/A&gt;.&amp;nbsp; Let me know what you think.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=850149" width="1" height="1"&gt;</description></item></channel></rss>