Friday, February 21, 2014

Up Coming Speaking Events

Hello Dear Reader!  We are 2 months into 2014 and the New Year is off to a busy start. This year already I've spoken to 3 User Groups and had 1 Workshop on Performance Tuning. This is only the beginning.  Between  now and May I've got 12 more presentations.  While I'm out and about I hope that I will get to see and meet up with a lot of SQL Family.

First Up Tampa!

SQL Saturday #273 is just around the corner.  I am one of a whole host of other great SQL Server Experts that will be on hand for the free training and free learning.  Stop by!  

February 22nd
SQL Saturday Tampa #273
Trimming Indexes Getting Your Database In Shape! (Click the link to go sign up)

Do you have the PASS Summit Blues?  We are 11 months away from the next great gathering of SQL Minds.  During this time of the year you watch your DVD's/Downloads/Streaming content from last.  You look at the presentations at the SQL Saturday's and start to wonder what will be planned for next year.  You miss your friends, you miss the atmosphere, you miss the Summit.

Well Pragmatic Works has the cure for the PASS Summit Blues.  All this month we have been doing our presentations from last year for Free, as part of our Training on the T's.  Next week you will get a chance to see my presentation from the Summit, Plus a little extra content as I take up not ONE, but TWO time slots.

Hope to see you there!

February 25th
Pragmatic Works Training on the T's
SQL Internals Deep Dive Part 1 (Click the link to go sign up)


February 27th
Pragmatic Works Training on the T's
SQL Internals Deep Dive Part 2  (Click the link to go sign up)

This March SQL Server MVP Jorge Segarra (@SQLChicken | Blog) and myself take our two man show on the road.  We did Tampa last month, next up Reston VA.  I'm hoping to catch up with some old friend's while in VA, and I'm sure you want to miss the two of us in action.  We still have seats, but they are going fast!  (Click the link to go sign up)

March 18th - 20th
Pragmatic Works
Performance Tuning Workshop  (Click the link to go sign up)
Reston, VA

Last year one of my favorite all time memories was SQL Saturday Boston.  I'd never been to Boston when I submitted and I'd always wanted to go.  Little did I realize that I would end up back in Boston 5 more times before the end of 2013.  I can't wait to go back and join the amazing speaker line up that Mike Hilwig(@MikeHilwig|Blog) has put together!

March 29th
SQL Saturday Boston #262
Trimming Your Indexes Getting Your Database In Shape  (Click the link to go sign up)

I'm in Portland Oregon for the first time ever.  As if that wasn't enough reason to show up, I'm presenting with none other than my colleague Roger Wolter(@RWolter50 | Blog).  Roger is a former PM for SQL Server for Microsoft.  He has forgotten more about computer science that I've ever known.  He's a nice guy and he's flat out brilliant.  He has worked on some of the largest and most complicated Service Broker installations in the world, he has vast in the field experience with SQL Server.

Roger and I are teaching the Performance Tuning Workshop not once, but twice this year.  I hope to see you there, because this Dear Reader is going to be a lot of fun.


April 8th
Pragmatic Works
Performance Tuning Workshop  (Click the link to go sign up)
Portland, OR

My good friends Jose Rivera(@SQLConqueror|Blog) and Guillero Caicedo(@SQLTitan|Blog) invited SQL MVP Jorge Segarra and myself to present a full day Pre-Con for SQL Saturday Puerto Rico.  I've gotten to know Jose and Guillero quite well from different SQL Saturday's and the PASS Summit.  This is a great honor as it will mark my 1st ever Pre-Con for a SQL Saturday!

Jorge and I will be pulling out all the stops to give you a full day of information and Performance Tuning knowledge that you can use.  I hope to see you there!

April 11th
SQL Saturday Puerto Rico #283  (Click the link to go sign up)
Full Day Performance Tuning Workshop

April 12th
SQL Saturday
Puerto Rico #283
TBD

Roger Wolter and I tackle SQL Server one more time in the Mile High City.  Denver is a beautiful town and I cannot wait to come out and visit will all the #SQLFamily out there.  We will also be presenting at the SQL Server User Group on the 29th.


April 29th-May 1st
Pragmatic Works 
Performance Tuning Workshop (Click the link to go sign up)
Denver, CO

April 29th 
Denver Colorado SSUG
TBD

Jorge and I will be taking our two man show over to SQL Saturday #298 Jacksonville.  When Devin Knight(@Knight_Devin | Blog) called me up and asked I was stoked!  This will be the 4th time that Jorge and I have presented together this year and I can't wait!  Come out and join us for some learning and fun!


May 9th
SQL Saturday Jacksonville #298
SQL Server Performance Tuning and Internals  (Click the link to go sign up)

May 10th
SQL Saturday Jacksonville #298
TBD

As you can see Dear Reader this year will be busy. There are more plans right now that we are working on that go all the way out to the end of the year.  More on that in the next couple of months!

As Always, Thanks for stopping by.

Thanks,

Brad

Wednesday, February 19, 2014

Windows 2012 for the SQL DBA: .NET 3.5 Fails to Install

Hello Dear Reader!  I know it has been a while since last we spoke.  Sorry for the long absence.  I've been working on a lot of things that you will see coming here in the weeks and months ahead.  But first I wanted to write a blog on a subject that I've hit multiple times.

 Windows Server 2012 ships with .NET 4.0 already installed.  However SQL Server 2008-2012 requires .NET 3.5.  Therefore, when you install SQL Server on Windows Server 2012 you must first install the .NET Framework 3.5.

"So Balls", you say, "What's the problem, just enable it?"

Ahh Dear Reader, Thank you for getting to the heart of the matter.  The normal way that you do this is you add the Feature .NET 3.5 Framework to you're server.  I've done this enough times that sometimes it works just fine.  Other times, it blows up.  If the GUI works for you then, keep using it.  This blog is about what you need to do when it goes wrong.

HOW IT NORMALLY GOES

Everything is bright and sunny in this version.  We will have no errors using the GUI whatsoever.  We start off with going to the Server Manager Dashboard.  Click the Manage button.  Then Click Add Roles and Features.


Next we go to Server Selection.  If you are installing this feature on a remote server you would select it here.  If you install this locally then just click the Server Selection menu item and then click directly to the Features Menu option.  The .NET 3.5 Framework is a feature not a role.

After that you check the box next to .NET 3.5 and click Next.
Click Install and away you go.

WHEN IT GOES WRONG
It was a Dark and stormy night as the DBA walked into the data center...

Actually it could be the middle of the day.  Whenever it is you attempted to install .NET 3.5 and something went wrong.

Regardless of the time you get the following error.

"Installation of one or more roles, role services, or features failed.  The source files could not be found. Try installing the roles, role services, or features again in a new Add Roles and Features Wizard session, and on the confirmation page of the wizard click "Specify an Alternative source path" to specify a valid location of the source files that are required for the installation.  The location must be accessible by the computer account of the destination server."


The next option is to go back through the Wizard and specify the location for installation.  I prefer to switch over to PowerShell.  At this point I've attached my ISO as my D drive.  So I'll just use the WindowsFeature cmdlet to do the install from my local media by typing:  Install-WindowsFeature NET-Framework-Core -Source D:\Sources\SxS
Then after a minute or two:
Installed and ready to go install SQL Server.

"So Balls", you say, "Could you have just browsed to the same path using the Wizard?"

Great question Dear Reader!  There is not a browse feature for the alternate path portion of the Wizard, but you could have manually entered D:\Sources\SxS and received the same result.

While the error screen had it all in the writing, when I first received this error I found a way to manually install from the Windows 2012 ISO Media and used it ever after.  Personally I like using PowerShell as a preconfiguration option.  It's easy to have a list of scripts and pull them out and run them each.

Alright Dear Reader, as always Thanks for stopping by.

Thanks,

Brad

Thursday, October 31, 2013

Tales from the Query Processor: II

Hello Dear Reader!  Today is Halloween, October 31st.  My Daughter turns a big 15 today!  Happy Birthday Ches!!!!!

To celebrate two years ago I posted my first Halloween Blog.  Tales from the Query Processor.  It was a lot of fun to write a fiction/horror story revolving around SQL Server and computers.  I wanted to do this last year but got a little busy with family stuff. 

Leading up to this year, I wanted to do it again.  This is one of those stories that's been sitting in the back of my head for a while.  I hope you enjoy it!  



INTO THE DARK

“It’s the same dream every night Doctor, and I don’t know how to make it stop and it just keeps happening.”  The panic in my voice was clear.  “I’m just a simple data page, I don’t know how to stop something like this!”

“Settle down, and start from the beginning,” was the doctor’s soothing reply. 

I settled in on the doctor’s couch, take a deep breath.  I’m in a safe place, I tell myself.  I’m in the buffer far from the disk, there’s plenty of room in the cache and the LRU algorithm is fast asleep.  Nothing can get me here.

CRASH!!!!

“WHAT WAS THAT!”, I screamed as I bolted straight up.

“Settle down,” said the doctor his tone growing a bit frustrated.  “It was just a stray hash bucket.  I’m sure it was nothing.  Lie back down, that's it. You were about to tell me about your dreams.”

Another deep breath, I’m in a safe… oh the hell with relaxing, “It always begins the same…. “

I’m at home in the disk.  I’m at the bottom of the B-Tree where data pages live.  Everyone is going about their business as usual.  It seems darker than normal, but I’m the only one who notices.  The lights of Data Center cascading through the rack, the blink of packets coming and going during their commute, the hustle and bustle of page splits and re-orgs.  It’s all there.  But there’s a fog.  Like I’m the only one that can see it.  A haze in the air, and everything is in slow motion.  I move myself out of physical order, changing my pointer so I can be found and maintain logical order.

My table is large and there are many IAM pages I can hop to.  I transverse the chain trying to get a better view.  The spinning of the disk heads are in the air, their normal beat and pulse that we’ve all come to expect.  It comforts us, like a baby in the womb.  I stare out into the vastness.  Pages so far it looks like the hex starts to fall off the end of the world into nothing but darkness.  That deep darkness captures me.  I cannot look away.  It's deep like a night with no stars and no moon.  Objects just start to melt in it.  The longer I look at it the larger it grows. Instantly have a stab of panic.  I know that I should stop looking.  But I can't!

It’s out there!  It sees me!  I shouldn’t have gone looking for it!  I should have stayed where I was.  I was safe back in my allocated space.  And I'm still staring!  I want to tear my eyes away from the darkness but I can't.  It's so empty and vast.  At least I thought it was.  The hairs on my neck stand up.  I can feel it.  I'm the only one looking for it and now it can see me.

I’m to close now.  I still can’t see it, but I can feel it with a certainty.  IT IS OUT THERE.  The normal spinning of the disk feels wrong.  It feels off.  Like a 757 flying 300 feet off the ground at 500 miles per hour, the disk continues to spin.  But if you watch it, you just know that any second somethings going to happen.  And that’s when I see it.

It lights up the sky with its spark.  Everyone else is still sitting there, like it’s a picnic on a sunny day.  Be lazy, enjoy the moment.  But I know.  I KNOW.  

I shouldn’t see it.  BUT I DO.  The light caused it to be visible.  The light that was some how gone a moment ago, the vile of fog has been pierced.  Worst of all, now I know that it sees me too.  I was the only one looking for it.  I stood out on the edge, and IT SAW ME.

It’s big and malformed.  It’s hideous.  It shouldn’t be there.  I know it.  Now it must catch me and add me to it or I’ll tell everyone.

I start running.  I need to get back to my allocated position.  I’ve got 10 IAM pages to transverse to get there.  524,288 pages per allocation.  I’m running and running.  This should be taking nanoseconds, but the pages are stretching before me, more, and more, and more.  It’s taking microseconds just to transverse one page.  I can feel the ground quake behind me.  I can feel it closer to me.

I’m terrified.  Running.  This is the end and I know it.  I see my spark starting to go out in the darkness.  I know it wants my bits and it wants to re-arrange them. 

I scream and there is no sound.  I’m trying to get the Checksum’s attention.  Screaming and Screaming, but there’s no sound!  Everyone is still going about their business.  Sunday picnic’s!  Maintenance windows, Read-ahead’s from a query, none of them see it!

READ-AHEAD’S!  If I can grab onto one it can pull me up!  There’s a chance!  There’s a chance I can make it!  But the GAM Allocation stretches out even further.  I extend my hand, like that will do any good.  Reach for as far as I can.  But it’s no good.  It falls on me.

“And that’s where I wake up”

The Doctor was on the edge of his chair.  Moments ago, he would have thought this simple data page another fragmented mess just in need of a bit of re-ordering.  Unknowingly he has stopped taking notes, and his right hand is digging deep into the arm of his chair.

“What was it?”, asks the Doctor.

“Doc, you know what it was as well as I do.  I don’t want to say it.”

“No of course not,” said the doctor.  Forcibly relaxing.  “Look, dreams like this are somewhat common for data pages.  I wouldn’t worry about it.” 

“Really?”

“Yes I’m sure everything is fine.  Often times dreams are just subliminal ways of dealing with a long day.  Head on home and let’s meet again next week,” he says jotting down some notes.  “Can I see your insurance card and driver’s license one more time?  I’ve want to make sure I get all the numbers down correctly.”

“Sure,” I say handing them over.  “So next week then.”

“mmmhmmm”, mutters the Doctor and he copies down the number next to his notes.
I rise.  The doctor is right I feel a little better just getting it off my chest.  We smile shake hands and I leave the office.

I’m almost to the door when I realize my keys feel out of my pocket.  I go back to the knock on the door, it’s still cracked open.  That’s when I hear him.

The Doctor is yelling into the phone.  “What DO YOU MEAN THERE’S NO ALERTS ON THE SUSPECT_PAGES TABLE!  We need to raise some sort of alert!  They need to check the Windows Error Log! NO NO YOU FOOL, 823 & 824 DON’T APPEAR IN THE SQL ERROR LOG IT’S GOT TO BE WINDOWS!”

The other end of the phone squabbles back.  The Doctor cuts him off sharply.

“Look I know damn well CHECKSUM is not ON!  I just had a torn page in my office!  IN MY OFFICE!  CHECKSUM was enabled at some point, but it must have been disabled.” 

“Doctor, I’m a torn Page!”, I say announcing my presence at the door.

“CHECKPOINT!!” The Doctor yells into the phone, “CHECKPOINT!!!”


And the world went white.


WRAP UP

As Always Dear Reader, Thanks for stopping by.  And Happy Halloween!

Thanks,

Brad