Is SQL Server 2000 gone for good?

Leave a comment

According to Microsoft, the extended support for SQL Server 2000 is completely gone as of April 9. 2013.

As you can see in the table (follow the link below) there is NO date after 2013-04-09. That means that the support is officially over. There will probably be no more updates, security fixes or patches anymore – even if you would need it!

But the most important piece of information, in my opinion, is that the general support ended 8. april 2008. That fact leads me to presume that most consultants does not have a real reason to preserve the SQL Server 2000 specific knowledge cached in their brains. There are actually not that many consultants who master the 2000 anymore… 

Change it. Now. To something closer to 2012.

Show the Microsoft Lifecycle search…

Prepairing for SQL Saturday

Leave a comment

Copenhagen is the location for this free event about SQL Server. My session this time is about LSN and the different backup combinations. How you can mess things up by yourself and how to avoid it…

ASYNC_NETWORK_IO for dummies

Leave a comment

I often come across “less than optimal” applications, when I do performance tuning. You know, that kind of application that are kind of responsive, but the main issue is the slowness. Everything about the application is sloooow…

What is one of the signs that you might have a slow client application? (Disclaimer: Slow = Doesn’t consume SQL Server data in zero or less milliseconds. All applications are more or less slow, but abnormal slowness can make users mad.)

The magical query:

SELECT *
FROM sys.dm_os_wait_stats
order by wait_time_ms desc

According to Guy Bowermans article, the statistics lifetime is (about) the time of the SQLTRACE_INCREMENTAL_FLUSH_SLEEP.

I now did some illustrative tests: I wrote an extremely simple console application, selecting the ID column from a table with ~1000000 rows.

Code: (C#, Console project)

static void Main(string[] args)
{

SqlConnection con = new SqlConnection(“Data Source=.;Initial Catalog=testdata;Integrated Security=SSPI;”);
SqlCommand cmd = new SqlCommand(“SELECT SalesOrderID FROM [Sales].[SalesOrderDetail]”, con);
SqlCommand cmdclearstat = new SqlCommand(“DBCC SQLPERF (‘sys.dm_os_wait_stats’, CLEAR);”, con);

con.Open();

cmdclearstat.ExecuteNonQuery();
SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())
{
int a = rdr.GetInt32(0);
//Console.WriteLine(rdr.GetInt32(0));
}

con.Close();

}

When I ran this code, the SQLTRACE_INCREMENTAL_FLUSH_SLEEP was 4000 at the time of the application end. The ASYNC_NETWORK_IO was at 122, giving us a wait ratio of 0.03.

The “problem” resulting in the real issue is: My application takes 4 seconds to run – without any feedback to the user. Not many users are comfortable with that. The “solution” is to uncomment the Console.Writeline() line. (I actually also removed the int a… line, in order to reading the same amount of objects.)

Results was amazing! I could follow the progress of the application as it looped through my rows. When the application was ready, the SQLTRACE_INCREMENTAL_FLUSH_SLEEP had reached 120024! Yes that’s correct! Two minutes of wonderful interaction 🙂 And the ASYNC_NETWORK_IO (the time SQL Server waited for my application to get the next row) was 120201. That is a ratio of  1.0015.

The server indicates that a “slow” application has made the server wait a lot! So what should you do?

Sometimes you have to choose between the unresponsiveness and the slowness, but sometimes you can get the best of the two worlds. You can try to update the screen every 10000 row, or even every 50000 row. Even with the code overhead, this application completed in virtually the same time as the blazing fast one. The difference was ASYNC_NETWORK_IO waited for 160 ms, resulting in a  0.04 ratio. Still acceptable, and the application (randomly) outputted data, making it seem more responsive.

“Optimal code fragment” replacing the while(rdr.Read()) statement:

int count = 0;
while (rdr.Read())
{
int a = rdr.GetInt32(0);
if (count % 50000 == 0)
{
Console.WriteLine(a);
}
count++;
}

Hopefully you’ll be able to identify some issues with these samples.

Certification Rush

1 Comment

Just hours ago I did my seventh certification in four days. Mr Brain is ready for some Christmas. The guys at Informator, Malmö sponsored my certification frenzy (thanks Acke) so I could do two certs per day, between 8 and 10, before the full time consulting started.

Result was OK. Not perfect scores, but still passing score on all 7 SQL Server 2012 certifications. Tonight I’ll celebrate with friends and tomorrow it’ll be business as usual 🙂

So it’s official

Leave a comment

I’ve been working for myself for more than eight years now. I like it. The fact that I’ m my own boss. I decide what to do and what to buy 😊. However sometimes you need co-workers. You know, the persons you can talk to and ask stuff without the risk that they will think you are strange and will never hire you again…

I got the opportunity to work for SolidQ. A really “front line” kind of company. I will still be in business as usual, but I can also be reached at my new company. I havre already found this arangement useful and fun, and  and can’t wait to contribute to the SolidQ community.

mwedham@solidq.com

SQL Rally done…

Leave a comment

OK, so I survived.

My talk was about query plans and statistics and had a moderate 200 level. There was a lot of administrators listening, so I really hope they got their moneys worth out of it. I’ve heard a couple of comments, mostly positive so I’m over all content.

I realized that one hour is only sixty minutes, and those minutes are not slowing down when I need to have more time. I had material for around 70-75 minutes and thought that the stress level I’d be in with 100+ attendees would make me talk fast and forget stuff, but no such luck 🙂 I had to compress the statistics part a lot, but I think I managed to make all of it to make sense in the end.

However, the big success indicator will be when/if I’ll be invited to another conference… Good things come to those who wait 🙂

I was a bit surprised – and scared…

Leave a comment

SQL Rally Nordic speaker

 

 

Exactly! My session was approved at SQL Rally Nordic.

I’ts not that I haven’t done speaking at conferences before, dude, I’ve even sung at weddings and at concerts. But SQL Rally! It’s an event where everyone knows a lot. I bet there are people there, knowing tons of stuff more than I know. And they don’t even speak.

If you are looking for an event where you learn a lot of things about SQL Server, this is it. You learn from the sessions, from the discussions – and most of all, you learn stuff when you eat lunch with your buddies at the conference.

Older Entries Newer Entries