Saturday, January 17, 2009

Moving to SQLBlog.com

At the beginning of the week I was contacted by Adam Machanic and asked if I was interested in moving my blog from Blogger to SQLBlog.com which is run by Adam, and Peter Debetta. This was originally something that I thought would be easy to do, but when it came down to it and I had to make a decision it was really hard to do. I've spent the last year blogging on this site, building a reader base, and using the content here to help answer questions on various forums. Currently I get just under 200 hits a day and have over 50 subscribed readers to this blog, so why would I want to move my blog?

Well, the main reason is the extended reach that exists for SQLBlog.com due to the other bloggers who blog there including Kalen Delaney, Kevin Kline, Adam Machanic, Simon Sabin, Peter Debetta, Aaron Bertrand, and numerous others. Now some might call me a sell out, but in reality the whole reason that we blog is to have people read what we write. I've been pretty successful building readership on my own, but by blogging at SQLBlog.com, I can grow my readership even further and faster.

So that being said, if you follow me here, I hope you will continue to follow me on SQLBlog.com. I plan to leave this blog in place since there are thousands of links to its content online and I would hate to orphan those links. You can follow my new posts on the SQLBlog RSS feed for my new blog at:

http://sqlblog.com/blogs/jonathan_kehayias/rss.aspx

The link to the actual blog is:

http://sqlblog.com/blogs/jonathan_kehayias/

Friday, January 16, 2009

Wordle and blog content

This post has been migrated to my new blog on SQLBlog.com. You can find this post at the following address:
http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/01/16/wordle-and-blog-content.aspx

Thursday, January 15, 2009

Windows Live Writer 2009 Released

... and yes this blog post was made with the newest non-Beta version of the tool.  I usually just stick to post regarding SQL Server, but this one has nothing to do with SQL Server aside from the fact that I use Windows Live Writer to Blog about SQL.  If you have a blog, are new to blogging, or are planning on blogging in the future, give Live Writer a look test.  It is free, and it connects to most public blogging sites without any real configuration.  All you have to do is install it, point it to your blog, provide your username and password and it is ready to publish anything you type up.

http://download.live.com/writer

Some reasons I use Live Writer:

  1. I can start a new blog entry and save it locally when I get ideas that I'd like to blog about but don't have the time to dedicate to writing the entry.
  2. It has a Microsoft Word like interface that is familiar.
  3. It accepts plugins that allow you to do things like add tag clouds, insert videos, pictures, formatted code (this doesn't work out so hot with blogger.com as I learned a few months back due to CSS issues and overlaps).

You can also manage multiple blogs with a single install of Live Writer.  I think it is one of the better tools I have in my blogging toolbox.

Wednesday, January 14, 2009

Time to Rant : Applications and Administrator Rights

It is 2009, and I am shocked to find that applications today still show up with a requirement to be a sysadmin on SQL Server, and in the case of one particular application I am helping troubleshoot today, a Local Administrator on the SQL Server machine.  As an application developer myself, I understand the due diligence required to properly design an application to follow proper security best practices, and it isn't hard to do if you do it up front.  Since I am not one to roll over on security I am willing to spend the hours/days to figure out the appropriate rights necessary for an application to work in SQL without being a sysadmin, but I don't know many people who can/will do that much leg work.

So why does the app need to be a sysadmin in the first place?  All to often it is just because that is how it was written, and it makes it easiest.  Often there is absolutely no need to be a sysadmin.  SecurityAdmin and DBCreator roles are initially needed to do the install so that the login can create the database for the app and setup security properly for it.  After this, DBO rights to the database is all that it actually needs, and you can drop the server level roles from the login.

Another place I see that apps need elevated rights is where the application has builtin administrative functions.  One app I have seen has a console that will allow the user to change max server memory for SQL Server from the application.  Thank you no, that is my job, and I don't want/need some application admin playing with my server configuration.  Why do application developers think that this kind of thing is a good idea?  We already have applications to manage SQL Server with.  I think that this is one of the reasons that the quality of applications that are out there has decreased in recent years.  Rather than create a focused application that solves one problem, it seems like application vendors want to do it all, which generally only means one thing, they won't do any of it very good.

So that leaves a question for the community of readers:  What do you do with applications like this?  I know in past discussions on SQL Server Central that some people use virtualized SQL Servers to solve this problem, and isolate the database on its own VM, but is that really a solution?  Now you get server sprawl and added licensing costs because the application, for lack of a better word, sucks?

Tuesday, January 13, 2009

oPass User Group Presentation

This thread is a place holder for the Presentation Slide Deck and Demo Code from the oPass User Group.  It will be updated with complete information after the Session.

Monday, January 12, 2009

SQL Server 2008 Express SQL Agent won't start

Yep, you read that right.  I did say SQL Server 2008 Express SQL Agent, and so will your services snapin if you install SQL Server 2008 Express, but you won't be able to use it.  Apparently there was some miscommunication/ lack of communication at Microsoft regarding the installation of SQL Agent with SQL Express, and the result is a disable SQL Agent Service that won't start no matter what you try to do.  This is documented in the following connect feedback:

https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=351806&wa=wsignin1.0

If you attempt to start the service you will receive the following error message:

The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. [0x80070422]

and trying to enable the service to start automatically will result in:

The request is not supported. [0x80070032]

This is by design according to the connect response from Microsoft, though it is not the ideal situation and is certain to cause a lot of confusion in the community.  If you want to use the SQL Agent, you need to install one of the pay versions of SQL Server.  You can still however, use sqlcmd.exe, batch files, and the Windows Task Scheduler to replace the SQL Agent free, or for a lot less than the cost of a single license for SQL Standard hope over to the SQL Sentry site, and purchase a copy of SQL Sentry Event Manager.

Now I will be quite honest and say that I haven't yet tried the Event Manager, but SQL Sentry has a great reputation for creating top quality applications and comes highly recommended by colleagues that I trust and respect.

Thursday, January 8, 2009

Other Blogs that you should be Watching

I committed to blogging about other SQL blogs in the community after Jason Massie gave me a bump on his blog.  So this week I spent some time reading over some of the blogs in my reader and finding ones that don't have many posts yet, but have demonstrated a sustained interest in blogging somewhat frequently.

TJay Belt's Thoughts - TJay Belt

TJay started blogging consistently before PASS 2008, and has quite an amazing blog roll on his site.  I made a reminder to come back to it and look at what feeds he might have of interest that I don't yet.

StraightPath Solutions - Mike Walsh

I usually don't recommend business based blogs, but Mike Walsh dedicates a good bit of time to helping people on the forums and Newsgroups for free, and he commented on a post here this week so I had to check out his blog the other day anyway.

Facility 9 - Jeremiah Peschka

I know Jeremiah from Twitter, and he is always doing performance tuning it would seem from his Tweets, but his blog covers more than just that. 

If you have a blog you'd like reviewed, send me an email, and I'll add it to my feed reader and see what you are all about.  I think that almost every blog post I see is interesting in one way or another, so even if I don't put you in a post like this, I will be subscribed to your blog.  :-)

PASS Governance Board posts Financial's Information

PASS is a not for profit organization for SQL Server Professionals that is widely known.  For years however, one thing about PASS was that it was not open with a lot of information like its financial statements and minutes from board meetings.  Well that has finally changed, and any member of PASS can login to the PASS site with their username and password and now see this information on the new Governance sub-site:

http://www.sqlpass.org/AboutPASS/Governance.aspx

For me this is a very important thing, especially given the amount of money that is handled by PASS for a given year.  I am not saying anything negative about PASS or implying that anything incorrect has been done by anyone involved with the Board currently or in the past, so please don't try and read into my comments on this post and make them into something they are not.  The level of transparency that the Board is now providing to the community is a good thing, they even posted information going back to 2004 for audited financial's.

This is definitely a step in the right direction, and having the January 2009 meeting minutes available for review is taking it the next step as well.  While I don't run a user group, this kind of information is good for group leaders to be able to see.

Wednesday, January 7, 2009

Free eBook from RedGate : Dissecting SQL Server Execution Plans (Grant Fritchey)

For the last few months I have been working with Understanding SQL Server Execution Plans at a very basic level to provide information on how to get Execution Plans from SQL, how to read them, how to find the information contained in them, and what to look for as flags of potential areas of concern when performance tuning code.  Last night I was having a chat with Jim McLeod, running some thoughts by him when he mentioned this eBook, so I did a quick search and located a free copy from RedGate which I promptly download from:

http://www.red-gate.com/specials/Grant.htm?utm_content=Grant080623

All I can say is WOW.  This has to be the best reference I have ever seen on Execution Plans in SQL Server.  My hats off to Grant Fritchey for first putting this together, but then for making the concepts simple enough that you really don't have to be a Sr DBA to figure out what is happening.  I'd highly recommend this eBook to anyone who writes or reviews TSQL code.

Tuesday, January 6, 2009

Error: 5123, Severity: 16, State: 1 when moving TempDB

This post has been migrated to my new blog on SQLBlog.com. You can find this post at the following address:

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/01/06/error-5123-severity-16-state-1-when-moving-tempdb.aspx

Monday, January 5, 2009

Think you can replace DBCC INPUTBUFFER with the DMV's. Better check again.

I was working on a different blog post this morning when I happened upon this little problem.  I was trying to implement statement level auditing of a database without using a SQL Trace in SQL Server 2005 for SOX Auditing, very similar to what we can do with the Server Audits in SQL Server 2008, when I happened upon a couple of posts on the forums that I had responded to in the past.  The first was a post asking how to do this very thing where I posted to use a SQL Trace, ironic I know, but later a post was made with a link to a "Oriental/Asian" (trying to be politically correct because I can't tell if the characters are Chinese or Japanese, but I suspect Chinese because it is at http://blogs.csdn.net/ which looks more like it should be Chinese) blog that shows how to accomplish the task using DBCC INPUTBUFFER.

That is great, and the code works out perfectly, but I am on SQL 2005, so I should be able to just hit up the DMV's for this information right?  Actually the answer is NO YOU CAN'T.  I should have recalled this from last February when UC from Microsoft replied to the following post:

Alternative to DBCC INPUTBUFFER/sys.dm_exec_sql_text?

I tried to use a number of the DMV's, sys.dm_exec_requests, sys.dm_exec_connections, sys.sysprocesses, and all of them return, the code of the trigger when run inside of the trigger.  I don't get how something this simple was overlooked, especially when the DMV's are supposed to be our replacement for the older code and structures, or are they?  The BOL entry for DBCC INPUTBUFFER doesn't have the standard deprecation announcement that can be found on other items that the DMV's should replace, so it really isn't intended in the current releases at least for the DMV's to be able to replace this functionality.

The good news is that according to UC, Microsoft is aware of this and working to fix it.

Sunday, January 4, 2009

Goals for 2009

A lot of people have been blogging lately about their New Years Resolutions and goals for 2009.  I had intended to blog this earlier, but I have been busy working on the Extended Events Manager app that I wrote for the SQL Heroes contest.  I prefer to set goals rather than make resolutions since goals are measurable and resolutions tend to not be accomplished. 

My number one goal for this year is to continue to dedicate a block of time to my family each day, since they are the number one priority in my life, and the older my daughter gets, the faster time seems to go by, especially with a second child due in June.  My second goal is to attend and graduate from the US Army Drill Sergeant Academy to further my military career.

As far as technical and career development my goals would be as follows:

  1. Remain consistent in technical blog posts averaging 3 a week for the year.
  2. Finish coding on the Extended Events Manager App to make it a one stop shop for creating, altering and consuming Extended Events in SQL Server 2008.
  3. Continue to answer posts on the MSDN and SqlServerCentral Forums.
  4. Present at least one session at a major event, (ie TechEd, SQLConnections, PASS Summit, etc.)
  5. Submit an article for publication at least once a quarter to an online site or magazine publication.
  6. Continue to present sessions at SQL Saturday and local Code Camp Events.
  7. Complete my MCITP SQL Server 2008 Administrator Certification.
  8. Take the Oracle Certified Associate Database Administrator Certification test.

I have a few other goals that I would like to accomplish as well, time permitting, but we'll see how the above eight pan out first.