Thursday, July 08, 2010
I regularly move logins between servers. Mostly this is between production and our DR site. I’ve used the code in KB246133 many, many times but it’s pretty limited. I started with that and wrote the script below.
- There is a user-defined function that’s created in master. You can create it in any database you want but you’ll need to update the script. The function converts varbinary hashed passwords to a string representation.
- It keeps the password intact for SQL Server logins.
- It scripts both Windows logins and SQL Server logins. It also scripts role membership.
- It keeps the SID intact for SQL Server logins. This is important so you don’t have to remap users to logins.
- The script that is generated uses IF NOT EXISTS so that it doesn’t try to create logins that already exist.
- It DOES NOT handle removal of logins from roles. It does handle disabled accounts but I haven’t done much testing on that.
- I’ve tested this on SQL Server 2005 and SQL Server 2008.
- You’ll probably need to change your results so that you display more characters by default. Under Tools –> Options –> Query Results –> SQL Server –> Results to Text increase the maximum number of characters returned to 8192 (or a number high enough that the results aren’t truncated). You’ll want to set results to text before running this.
USE [master]
GO
/****** Object: UserDefinedFunction [dbo].[fn_hexadecimal] ****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[fn_hexadecimal]
(
-- Add the parameters for the function here
@binvalue varbinary(256)
)
RETURNS VARCHAR(256)
AS
BEGIN
DECLARE @charvalue varchar(256)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
DECLARE @tempint int
DECLARE @firstint int
DECLARE @secondint int
SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
SELECT @firstint = FLOOR(@tempint/16)
SELECT @secondint = @tempint - (@firstint*16)
SELECT @charvalue = @charvalue +
SUBSTRING(@hexstring, @firstint+1, 1) +
SUBSTRING(@hexstring, @secondint+1, 1)
SELECT @i = @i + 1
END
return @charvalue
END
GO
SET NOCOUNT ON
GO
--use MASTER
GO
PRINT '-----------------------------------------------------------------------------'
PRINT '-- Script created on ' + CAST(GETDATE() AS VARCHAR(100))
PRINT '-----------------------------------------------------------------------------'
PRINT ''
PRINT '-----------------------------------------------------------------------------'
PRINT '-- Create the windows logins'
PRINT '-----------------------------------------------------------------------------'
SELECT 'IF NOT EXISTS (SELECT * FROM master.sys.server_principals WHERE [name] = ''' + [name] + ''')
CREATE LOGIN [' + [name] + '] FROM WINDOWS WITH DEFAULT_DATABASE=[' +
default_database_name + '], DEFAULT_LANGUAGE=[us_english]
GO
'
FROM master.sys.server_principals
where type_desc In ('WINDOWS_GROUP', 'WINDOWS_LOGIN')
AND [name] not like 'BUILTIN%'
and [NAME] not like 'NT AUTHORITY%'
and [name] not like '%\SQLServer%'
GO
PRINT '-----------------------------------------------------------------------------'
PRINT '-- Create the SQL Logins'
PRINT '-----------------------------------------------------------------------------'
select 'IF NOT EXISTS (SELECT * FROM master.sys.sql_logins WHERE [name] = ''' + [name] + ''')
CREATE LOGIN [' + [name] + ']
WITH PASSWORD=' + [master].[dbo].[fn_hexadecimal](password_hash) + ' HASHED,
SID = ' + [master].[dbo].[fn_hexadecimal]([sid]) + ',
DEFAULT_DATABASE=[' + default_database_name + '], DEFAULT_LANGUAGE=[us_english],
CHECK_EXPIRATION=' + CASE WHEN is_expiration_checked = 1 THEN 'ON' ELSE 'OFF' END + ', CHECK_POLICY=OFF
GO
IF EXISTS (SELECT * FROM master.sys.sql_logins WHERE [name] = ''' + [name] + ''')
ALTER LOGIN [' + [name] + ']
WITH CHECK_EXPIRATION=' +
CASE WHEN is_expiration_checked = 1 THEN 'ON' ELSE 'OFF' END + ', CHECK_POLICY=' +
CASE WHEN is_policy_checked = 1 THEN 'ON' ELSE 'OFF' END + '
GO
'
--[name], [sid] , password_hash
from master.sys.sql_logins
where type_desc = 'SQL_LOGIN'
and [name] not in ('sa', 'guest')
PRINT '-----------------------------------------------------------------------------'
PRINT '-- Disable any logins'
PRINT '-----------------------------------------------------------------------------'
SELECT 'ALTER LOGIN [' + [name] + '] DISABLE
GO
'
from master.sys.server_principals
where is_disabled = 1
PRINT '-----------------------------------------------------------------------------'
PRINT '-- Assign groups'
PRINT '-----------------------------------------------------------------------------'
select
'EXEC master..sp_addsrvrolemember @loginame = N''' + l.name + ''', @rolename = N''' + r.name + '''
GO
'
from master.sys.server_role_members rm
join master.sys.server_principals r on r.principal_id = rm.role_principal_id
join master.sys.server_principals l on l.principal_id = rm.member_principal_id
where l.[name] not in ('sa')
AND l.[name] not like 'BUILTIN%'
and l.[NAME] not like 'NT AUTHORITY%'
and l.[name] not like '%\SQLServer%'
Friday, March 12, 2010
One of the requests I get on a regular basis is to capture the performance of statement level events. The latest beta has this feature available. If you’re interested in this I’d like to get some feedback.
- I handle the SP:StmtCompleted and the SQL:StmtCompleted events. These report CPU, reads, writes and duration.
- I’m not in any way saying it’s a good idea to trace these events. Use with caution as this can make your traces much larger.
- If there are statement level events in the trace file they will be processed. However the query screen displays batch level *OR* statement level events. If it did both we’d be double counting.
- I don’t have very many traces with statement completed events in them. That means I only did limited testing of how it parses these events. It seems to work well so far though. Your feedback is appreciated.
- If you ever write loops or cursors in stored procedures you’re going to get huge trace files. Be warned.
I also fixed an annoying bug where ClearTrace would fail and tell you a value had already been added. This is a result of the collection I use being case-sensitive and SQL Server not being case-sensitive. I thought I had properly coded around that but finally realized I hadn’t. It should be fixed now.
If you have any questions or problems the ClearTrace support forum is the best place for those.
Monday, March 01, 2010
My SQL Server blog reading list is around one hundred blogs. Many people are writing great content and generating lots of page views. I see some of them running Google AdSense and trying to make a little money off their traffic. If you want to earn some some extra money from what you’ve written there are a couple of options. And one new option that I’m announcing here.
Background
Internet advertising is sold based on a few different pricing schemes.
- Flat Fee. You offer either all your impressions (page views) or some percentage of your impressions in exchange for a flat monthly fee.
- CPM or cost per thousand impressions. If the quoted price is $2 CPM you’ll get $2 for every 1,000 times the ad is displayed. While you might think the “M” means millions, the “M” in CPM is the roman numeral for 1,000.
- CPC or cost per click. This is also called PPC or pay per click. In this method you get paid based on how many clicks there are on the ad.
- CPA or cost per action. In this method you get paid based on an action that occurs on the advertisers site after they click on the ad. This is typically some type of sign up form. This is how most affiliate programs work.
Darren Rowse at ProBlogger has been writing about blogging and making money off blogs for years. He has a good introduction to making money on your blog in his “Making Money” section. If you’re interested in learning more he has a post up titled How to Make More Money From Your Blog in the New Year that links to many of his best posts on the subject.
Google AdSense
This is the most common method for people earning money from their blogging. It’s easy to setup and administer. You tell AdSense what size ads you’d like to run and it gives you a little piece of JavaScript to put on your site. AdSense quickly learns the topics you write about and displays ads that are appropriate for your site. I typically see ads for hosting, SQL Server tools and developer tools running in AdSense slots. AdSense pays on a CPC model. If you translate that back to CPM pricing you’ll see rates from $0.50 to $1.00 CPM.
Amazon
While you might not make much money writing books it’s now possible to make even less helping Amazon sell them. You can sign up for an Amazon affiliate program. Each time you send Amazon a link and someone buys the book you get a cut of that sale. This is the CPA model from above.
Amazon can help you build some pretty nice “stores”. Here’s the SQL Server bookstore I built for SQLTeam.com. If you’re just putting in a page with books like I’ve done on SQLTeam you should keep your expectations low. If you’re writing book reviews of suggesting books on your blog it really does make sense to setup an Amazon affiliate link. People are much more likely to buy a book based on a review from a trusted source. I always try to buy through a referral link if there is one.
Amazon pays about 4% of the price as a referral fee. You also get credit for anything else they buy while on the site. I recently had someone buy an iPod nano with their SQL Server book making me an extra $5.60 richer! Estimating how much you can make is difficult though. How much attention you draw to the links and book reviews can dramatically affect the earnings.
Private Ad Sales
This is the hardest but potentially most lucrative option. You sell advertising directly to companies that want to sell things to your readers. Typically this would be SQL Server tool vendors, hosting companies or anyone else that wants to make money off database administrators. This is also the most difficult to do. You’ll need the contacts at the companies and enough page views to make it worth their while. You’ll also need software to track the page views and clicks, geo-target your ads and smooth out the impressions. Your earnings are based on whatever you can negotiate with the companies.
SQL Server Ad Network
For the last couple of years I’ve run any extra ads that I sold on the SQLTeam Weblogs. You can see an example of that on Mladen’s blog. The ad in the upper right corner is one that I’m running for him. (Note: Many of the ads I’m running are geo-targeted to only appear in English speaking countries. You may see a different set of ads outside the US, Canada and the UK. You can also see he has a couple of Google ads on his blog.) When I run ads on his blog I split the advertising revenue with him. They make a little and I make a little.
I recently started to expand this and sell advertising specifically to run on SQL Server-related blogs. I’m also starting to run ads on non-SQLTeam blogs. The only way I can sell more advertising is to have more blogs to run it on. And that’s where you come in.
I’ve created a SQL Server advertising network. I handle all the ad sales and provide the technology to serve the ads. I handle collections and payments back to you. You get paid at the end of each month regardless of when (or if) the advertiser actually pays. All you need to do is add a small piece of JavaScript to your site to display the ads.
If you’re writing about SQL Server and interested in earning a little money for your site I’d like to talk to you. You can use the Contact Us page on SQLTeam.com to reach me. Running advertising on your blog isn’t for everyone. If you’re concerned about what advertisers might think about certain posts then you might not be a good fit. For the most part this isn’t an issue. You’ll also need to have a PayPal account to receive payments. You probably won’t get rich doing this. But you can earn extra cash on the side for doing what you would do anyway. I do know that people have earned enough to buy themselves a nice laptop doing this.
My initial target is blogs with more than 10,000 page views per month. I expect to pay two to three times what Google pays. If you have less than 10,000 page views per month but are still interested I’d still like to hear from you. I may not be able to sign up smaller blogs right away but we’ll get the process started. If you’re unsure about your traffic Google Analytics is a free tool that provides great reporting on traffic, popular posts and how people find your blog. If you have any questions or are just curious drop me a line and I’ll try to answer your questions.
Friday, February 26, 2010
At 1:10AM Sunday morning the main SAN at one of my clients suffered a “partial” failure. Partial means that the SAN was still online and functioning but the LUNs attached to our two main SQL Servers “failed”. Failed means that SQL Server wouldn’t start and the MDF and LDF files mostly showed a zero file size. But they were online and responding and most other LUNs were available.
I’m not sure how SANs know to fail at 1AM on a Saturday night but they seem to. From a personal standpoint this worked out poorly: I was out with friends and after more than a few drinks. From a work standpoint this was about the best time to fail you could imagine. Everything was running well before Monday morning. But it was a long, long Sunday. I started tipsy, got tired and ended up hung over later in the day. Note to self: Try not to go out drinking right before the SAN fails.
This caught us at an interesting time. We’re in the process of migrating to an entirely new set of servers so some things were partially moved. This made it difficult to follow our procedures as cleanly as we’d like. The benefit was that we had much better documentation of everything on the server. I would encourage everyone to really think through the process of implementing your DR plan and document as much as possible. Following a checklist is much easier than trying to remember at night under pressure in a hurry after a few drinks.
I had a series of estimates on how long things would take. They were accurate for any single server failure. They weren’t accurate for a SAN failure that took two servers down. This wasn’t bad but we should have communicated better.
Don’t forget how many things are outside the database. Logins, linked servers, DTS packages (yikes!), jobs, service broker, DTC (especially DTC), database triggers and any objects in the master database are all things you need backed up. We’d done a decent job on this and didn’t find significant problems here. That said this still took a lot of time. There were many annoyances as a result of this. Small settings like a login’s default database had a big impact on whether an application could run. This is probably the single biggest area of concern when looking to recreate a server. I’d encourage everyone to go through every single node of SSMS and look for user created objects or settings outside the database.
Script out your logins with the proper SID and already encrypted passwords and keep it updated. This makes life so much easier. I used an approach based on KB246133 that worked well. I’ll get my scripts posted over the next few days.
The disaster can cause your DR process to fail in unexpected ways. We have a job that scripts out all logins and role memberships and writes it to a file. This runs on the DR server and pulls from the production server. Upon opening the file I found that the contents were a “server not found” error. Fortunately we had other copies and didn’t need to try and restore the master database. This now runs on the production server and pushes the script to the DR site. Soon we’ll get it pushed to our version control software.
One of the biggest challenges is keeping your DR resources up to date. Any server change (new linked server, new SQL Server Agent job, etc.) means that your DR plan (and scripts) is out of date. It helps to automate the generation of these resources if possible.
Take time now to test your database restore process. We test ours quarterly. If you have a large database I’d also encourage you to invest in a compressed backup solution. Restoring backups was the single larger consumer of time during our recovery. And yes, there’s a database mirroring solution planned in our new architecture.
I didn’t have much involvement in things outside SQL Server but this caused many, many things to change in our environment. Many applications today aren’t just executables or web sites. They are a combination of those plus network infrastructure, reports, network ports, IP addresses, DTS and SSIS packages, batch systems and many other things. These all needed a little bit of attention to make sure they were functioning properly.
Profiler turned out to be a handy tool. I started a trace for failed logins and kept that running. That let me fix a number of problems before people were able to report them. I also ran traces to capture exceptions. This helped identify problems with linked servers.
Overall the thing that gave me the most problem was linked servers. In order for a linked server to function properly you need to be pointed to the right server, have the proper login information, have the network routes available and have MSDTC configured properly. We have a lot of linked servers and this created many failure points. Some of the older linked servers used IP addresses and not DNS names. This meant we had to go in and touch all those linked servers when the servers moved.
Friday, February 05, 2010
Peter Larsson recently scrubbed his laptop but didn’t bring over his favorites and made a plea for interesting SQL Server related blogs. My reading list of SQL Server blogs and sites is up to 83 sites in Google Reader and I thought I’d share my list in hopes of finding more. Here’s the link to the OMPL file that you can import into a feed reader: SQL Server Blogs OPML file.
Below is the complete list of SQL Server blogs I read regularly. If you’re writing about SQL Server and not on that list please use the contact me form and let me know about your blog. I’d like to get you added to the list.
Bill subscriptions in Google Reader
- [RSS] Allen Kinsel - SQL DBA
- [RSS] Andrew Fryer's Blog
- [RSS] Bill Ramos on SQL Server
- [RSS] Bob Beauchemin's Blog
- [RSS] Brent Ozar - SQL Server DBA
- [RSS] Carpe Datum
- [RSS] Chris Shaw's Weblog
- [RSS] Conor Cunningham's Blog
- [RSS] Conor vs. SQL
- [RSS] Dan's Blog
- [RSS] Data Dude
- [RSS] Databases, Structures, and the Damn Data Itself
- [RSS] DataWorks WebLog
- [RSS] Developer hearted / Relational minded
- [RSS] Direct Reports (Brian Welcker's Weblog)
- [RSS] Esoteric
- [RSS] Euan Garden's BLOG
- [RSS] Glenn's space
- [RSS] Henk's tech blog
- [RSS] In Recovery...
- [RSS] Jeremiah Peschka, SQL Server Developer
- [RSS] Jimmy May, Aspiring Geek: SQL Server Performance, Best Practices, Productivity, etc.
- [RSS] Kalen Delaney
- [RSS] Kendal Van Dyke
- [RSS] Kevin E. Kline
- [RSS] Kimberly L. Tripp: Improving *my* SQL skills through your questions!
- [RSS] Laurentiu Cristofor's blog
- [RSS] Microsoft SQL Server Development Customer Advisory Team
- [RSS] Microsoft SQL Server Release Services
- [RSS] Microsoft SQL Server Support Blog
- [RSS] Midnight DBA
- [RSS] Most Recent KBs for SQL Server 2005
- [RSS] MSDN: SQL Server
- [RSS] MSSQLTips - Latest SQL Server Tips
- [RSS] PASS - The Professional Association for SQL Server
- [RSS] Patrick Sirr's Blog
- [RSS] Pragmatic Works
- [RSS] PSS SQL Server Engineers
- [RSS] rusanu.com
- [RSS] Slava Oks's WebLog
- [RSS] SQL Fool
- [RSS] SQL Programmability & API Development Team Blog
- [RSS] SQL Server
- [RSS] SQL Server 2005: CLR Integration
- [RSS] SQL Server Blog by Jason Massie
- [RSS] SQL Server Community Blogs
- [RSS] SQL Server Engine Tips
- [RSS] SQL Server Performance
- [RSS] SQL Server Policy-Based Management
- [RSS] SQL Server Premier Field Engineer Blog
- [RSS] SQL Server Storage Engine
- [RSS] SQLAndy
- [RSS] SQLBatman.com
- [RSS] SQLblog.com - The SQL Server blog spot on the web
- [RSS] SQLCAT.com
- [RSS] SQLJunkies Blogs
- [RSS] SQLServerCentral.com
- [RSS] SQLServerCentral.com
- [RSS] SQLServerCentral.com
- [RSS] SQLServerCentral.com
- [RSS] SQLServerPedia
- [RSS] SQLServerTimes2
- [RSS] SQLTeam.com Feed
- [RSS] SQLTeam.com Weblogs
- [RSS] SQLvariations
- [RSS] SSIS Talk
- [RSS] StraightPath Solutions SQL Blog
- [RSS] The Cranky DBA
- [RSS] The Data Platform Insider
- [RSS] The Kirkapedia
- [RSS] The SQL Doctor is In (Real In)
- [RSS] The SQL UPDATE Statement
- [RSS] Tips, Tricks, and Advice from the SQL Server Query Optimization Team
- [RSS] Tips, Tricks, and Advice from the SQL Server Query Processing Team
- [RSS] (title unknown)
- [RSS] Tony Rogerson's ramblings on SQL Server
- [RSS] Transact-SQL Blog
- [RSS] VSTS DB Team Blog
- [RSS] Ward Pond's SQL Server blog
- [RSS] WebbTech Solutions
- [RSS] Write Ahead Blog
- [RSS] SQLServerCentral.com Articles
Tuesday, January 19, 2010
Monday, January 04, 2010
At the Summit this year we announced that the 2010 Summit would be in Seattle again. This will mark the third year in a row in Seattle. We’ve been in Seattle twice in a row before but never three times. After we complete the 2010 Summit in Seattle, half of our Summit’s will have been held in Seattle. 2010 is a launch year for SQL Server so I think it’s good we’re there.
We don’t have a contract in place year for 2011 yet but we need to finalize one soon. A number of people have asked why we’ve been in Seattle so long and why don’t we come back to the East Coast. I wanted to get some thoughts down on things that impact our decision and see if we can get some feedback. We’re also planning to send out a survey and find out what’s important to potential attendees. Please note: These thoughts are the opinion of one Board member and don’t reflect the official position of PASS. Hopefully this will give you some insight into how we think about this issue and you’ll better understand how we make decisions like this.
Travel
The obvious benefit to being on the east coast is that that travel is reduced for people in the Eastern and Central time zones. Travel for anyone on the east coast to Seattle is a long trek across the country. On the return there are rarely afternoon or evening flights except red-eyes. Switching to a Tuesday through Thursday schedule may have helped a little. The downside of that is reduced attendance at pre-conference and post-conference sessions or the same flight challenges if you want to attend one of those sessions. Moving to the east coast inconveniences a different set of people. There’s certainly an argument to be made that we should inconvenience everyone equally on a somewhere regular schedule.
Microsoft Support
We enjoy fantastic support from Microsoft when the Summit is in Seattle. I don’t know much about their budget process but I’m guessing if we hold the event in other cities that their budget won’t magically increase. That means the same amount of money would have to include travel expenses. I see that impacting the following activities:
- Microsoft sends hundred’s of developers to the Summit. These people spend time in the Ask the Experts area and answer questions about every aspect of SQL Server. There just isn’t anywhere else that you can ask the people that wrote SQL Server itself how it works. This is a very unique benefit of the Summit being in Seattle. If we hold it elsewhere I’m guessing that hundred’s of developers becomes a dozen or so product or program managers.
- This year CSS and SQLCAT cooperated to put on the SQL Clinic. This is a great place to talk to Microsoft’s top support engineers and the people Microsoft sends out to work on their most interesting customer engagements. Bob Ward wrote a great post detailing the types of questions they handled in the SQL Clinic. My guess is that this program wouldn’t be hugely impacted by a move to the east coast. Many of the CSS engineers come in from Dallas and the SQLCAT people come in from all over the world. It would most likely still happen but just with fewer people.
- During the Summit Microsoft holds meeting with various groups in the SQL Server community including MVPs and Microsoft’s key customers. There are people in the product team that just participate in these meetings and don’t stay for the rest of the Summit. If we’re not in Seattle that becomes harder. While that sounds like it only affects Microsoft it also affects PASS. These meetings provide extra incentive for MVPs, key customers and other participants to attend the Summit. These people are often speakers and volunteers and this gives them one more reason attend. Anything that encourages our best volunteers and speakers to attend the Summit helps PASS.
- In Seattle Microsoft delivered 50-70 sessions. I don’t remember the exact count but you get the idea. For the most part these were each delivered by an expert in that area. Speakers didn’t present in multiple areas. If we move away from Seattle we reduce the number of speakers. That means less variety and less focus on a particular subject.
Logistics
It really takes a team to put on a conference the size of the PASS Summit. We work with a number of vendors for everything from event production to registration. Over the last few years we’ve really figured out what works at the convention center. Internet access was good this year. Keynote productions were great. The food worked well. Registration worked well. All the logistics went smoothly. We know what rooms are good to put sessions in and which rooms are better for meetings. We’ve also learned where to spend money and where not too. If any of you have put on local events I’m sure there are things you spent money on that you wouldn’t repeat. We’ve got most of those figured out at the Seattle convention center. We don’t waste money on things that don’t add value.
In a new city we’re not going to do this well. We’re going to have logistical challenges. We’re going to spend too much (or not enough) on food. We may have issues with wireless. We might not get all the rooms right. In short, there are lots of things that *could* go wrong and some probably will.
Costs
Holding the Summit in another city increases the costs for PASS. All the items listed in the previous section will probably cause extra money to be spent. Our headquarters is located in Vancouver. It’s just a few hours to drive down to Seattle. If we move to another city that will increase travel costs. It will also increase shipping costs. Right now we’re able to purchase items to Vancouver and drive them down. We lose that ability when we move to another city. Our headquarters typically does a number of site visits to potential sites and then to the final chosen site. In Seattle we need fewer of these visits due to the familiarity with the facility. Plus they’re cheap to conduct due to the proximity. This is all money we’ll spend that can’t be spent on community.
Seattle
Seattle is a good city for our conference. It has lots of “stuff” downtown within walking distance of the convention center. There are plenty of hotels nearby so we can negotiate reasonable prices. These are all things we’ll look for in other cities but might have difficulty finding.
Our choices
We have a number of different choices.
- Stay in Seattle for all our Summits. This is the easiest, cheapest choice but may not be the best for all our members. There are drawbacks to leaving Seattle. Is the benefit of reduced travel enough to offset those?
- Rotate out of Seattle every 3-4 years. Hold the majority of our Summits in Seattle but enough on the east coast to keep members happy.
- Hold a second, smaller event on the east coast in the spring. This idea has been kicked around recently and has merit. It also has drawbacks. It bears all the increased costs and limited Microsoft support. It would be smaller and have less networking opportunity. It has the ability to reduce the size and impact of our main Summit. Putting on a second event would increase the workload at HQ. It does give people a choice on where they’d like to attend though. The earliest we could do something like this would be 2011.
We’re going to send out a survey later this week with some detailed questions around this. Please be on the look out for this and take the time to respond to it. If you have any thoughts you’d like to share please feel free to post them.
Tuesday, December 08, 2009
I’ve been posting links to interesting blog posts in the SQLTeam.com Newsletter for over a year now. I going to try posting them here also.
Oh what job was it? A procedure to search your jobs for a particular string [www.sqlservercentral.com/blogs/james_howards_sql_blog/]
One Man's Trash... [www.straightpathsql.com] - I really liked this post. A great discussion about the importance of attitude at work.
Bruno Terkaly - Developer Evangelist - bterkaly@microsoft.com : Deploying Azure apps in 1000 words or less [blogs.msdn.com/brunoterkaly/]
Fundamentals of Storage Systems – RAID, An Introduction [www.sqlservercentral.com/blogs/sqlmanofmystery/]
Fundamentals of Storage Systems – Disk Controllers, Host Bus Adapters, and Interfaces [www.sqlservercentral.com/blogs/sqlmanofmystery/]
Troubleshooting Microsoft SQL Server : Transactional Replication Conversations [blogs.msdn.com/chrissk/] - Very detailed article on troubleshooting replication
Report Builder and Firewalls [blogs.msdn.com/psssql/]
How Do You Use SQL Server [facility9.com]
Using Resource Monitor In Windows Server 2008 to Look at I/O Performance for SQL Server 2008 [glennberrysqlperformance.spaces.live.com]
Friday, November 27, 2009
Each year at the PASS Summit I carry around a little black notebook that easily fits in my pocket. Any time I come across something I need to fix I write it down. Any time someone makes a good suggestion I write it down. Any ideas or thoughts on future conferences get written down. Some ideas get implemented and some don’t but I try to get everything written down. I even manage to mix in some technical things I learn in the few sessions I get to attend.
This year I didn’t find much that was truly broken. There were no issues with food or drink or rooms that bubbled up to me. I’m sure there were little issues here and there but nothing major that I had to deal with. I believe that’s due to a number of factors. Putting on a conference like this requires a real team effort. There are 3-4 different companies that each have logistical responsibilities at the Summit. Coordinating this requires effort and planning. We’ve been using the same vendors for a few years and that continuity if really starting to show.
Last year I filled about four full pages of notes. There weren’t too many problems. Most were just things I wanted to do better next year. This year it was different. Vastly different. Every time I opened that notebook people crowded around to offer ideas, suggestions, things other conferences did, tips and tricks. It was nothing short of amazing.
The last night of the conference I always try to have dinner with “Summit friends”. These are the people I’ve been sharing the PASS Summit with over the years. This was my ninth Summit and my eighth with Denise, Lance, Chris, Scott, Wendy, Tim and the rest of the crew. Since I started on the Board I get less time to see these folks so I always reserve the last night of the Summit to go out with them.
We got back Friday night after dinner and I took a quick look in the Sheraton bar and saw a dozen or so PASS folks and decided to join them. At some point someone made a comment on a way to improve the Summit. I asked a few questions about what they were thinking and then pulled out my notebook and wrote it down. At that point someone else offered a suggestion. And I wrote that down. And I spent the next 90 minutes writing down amazing ideas, suggestions and comments. Rob, Denny, Kris, Meredith, Mike, Allen, William, Denise, Chris and a few others I can’t remember were full of great ideas! On a Friday night. After a few too many drinks! (Actually I think the drinks might have helped!)
And so I want to say Thank You. Thanks to everyone that offered a suggestion. I have 18 pages of notes I need to work through and prioritize. Many are very practical things that will be easy to implement. Some are crazy pie in the sky ideas. All are thoughts that people cared enough to explain while I wrote.
Next year at the Summit I’ll have my notebook – hoping to meet new people and listen to what they say. See you there.
Saturday, October 31, 2009
(This blog post comes from an email I sent to the Board about this. I left in some of the thoughts around it in addition to just what we’re doing. Plus we’re still working out some details.)
This year at the Summit we want to give the community a chance to ask questions of the Board and provide feedback. We also want to capture any suggestions people have.
First, The PASS Board of Directors will hold an open Q&A session Wednesday from 4:30PM until 6:15PM. It will be in room 6E. This overlaps with the last session but also runs 15 minutes past the end of the last spotlight. This means that everyone should be able to attend for at least 15 minutes if they’d like. There just aren’t any other scheduling options except before the keynotes. Hopefully not too many of you will be double-booked.
We’ll try to record it. Depends on what A/V is already in the room and what costs are. I’m leaning toward spending the cash but we’ll see. Cameras are welcome. Everyone in the community is welcome to record it, stream it, whatever. We’ll definitely take good notes. We expect people to come and go during this. If we get the same question three times that’s fine.
The session will probably be moderated. All the Board members will be answering questions. In cases where there are a variety of Board opinions on issues we’ll make sure everyone gets a chance to answer or ruminate. I think we’ll get very few questions in areas where PASS has an official policy so it will mostly be Board member’s opinions. We expect the community to drive the topics and we just make sure everyone gets heard.
Second, we’ve asked each Board member to spend one (or maybe even two hours) in the PASS Booth. We’re hoping to list all the Board members and their schedule during Wayne’s keynote. If not, they will be posted in the PASS Booth. This will give people a chance to speak with the Board in a relaxed setting and answer questions about PASS.
Finally, we’re going to have a suggestion box at the booth. Yes, pen and paper. Old school I know. We looked into an email alias. The only downside right now is that we don’t have a good process on the other end of that to deal with the feedback we get. HQ is completely swamped getting ready for Summit and doesn’t have any extra time at Summit. I don’t want us in a position of accepting suggestions we can’t process or even respond to.
Whatever we have in the box by Wednesday we’ll go through at the Q&A -- time permitting. We can probably find a volunteer to sort them for us. Any received after Wednesday will be processed by HQ when they get back up to speed following Summit. I expect we’ll get quite a few about Summit logistics. We’ll just have to see if we have time to address those. Otherwise the HQ logistics group can look through them as they have time. This is a stop gap measure for this Summit only. The post-Summit survey that goes out will also be a way to capture Summit specific feedback.
Going forward we’ll either setup an email alias or forums. I’m leaning toward forums but we’ll have to see what works logistically. Brent Ozar made some good comments about that the other day. That gives people a way to give feedback on ideas and add more information. And a way for the community to give feedback on the fly on various ideas. We’ll see if we can keep up with them :) It also gives us a way to ask them questions. That’s an area we’ve been sorely lacking (or at least I have).
See you all soon!
-Bill
(Cross posted from the PASS Blog: http://www.sqlpass.org/Community/PASSBlog/articleType/ArticleView/articleId/119/Interact-with-the-PASS-Board-at-the-Summit.aspx)
Sunday, October 25, 2009
Over the last year I’ve watched my usage of Facebook change. A party in my hometown really capped off the change. When I started out on Facebook all my friends were technology people. Facebook hadn’t invaded my hometown yet.
I grew up in Baldwin City, Kansas about 50 minutes southwest of Kansas City. The population was around 2,000 when I graduated from high school. That was back in the days of Miami Vice, Dire Straits, Back to the Future, Family Ties, Huey Lewis & the News, Rocky IV and Simple Minds. (And yes, I was just as cool as Don Johnson. Weren’t we all?) We used to stop at Jack’s Dari-Ring to get slushies on hot summer days. Now the town has McDonald’s, Sonic, Taco Bell, Pizza Hut and a stop light. I’m not entirely sure that’s progress.
Each year Baldwin City hosts the Maple Leaf Festival. The town is full of maple trees that all change color about the same time. We have a parade, lots of booths selling painted saw blades, funnel cakes, quilts and other knick-knacks. The parade always brings out the best of small town America. Lots of local politicians, marching bands and floats. In that last picture are the runaway brides.
Over the last year or two my Facebook friend’s list has filled up with people from Baldwin City. I don’t have a huge number of friends on Facebook but it’s probably two-thirds Baldwin High School alumni now. And this year they decided to have a party.
Five girls from Baldwin organized it to coincide with Maple Leaf. Many of the high school classes hold their reunions at this time also. I watched the confirmations click up curious to see how many people would attend. I thought it would be great to see 20-30 people I hadn’t seen in a while. The confirmed count kept going up and finally stopped around 150. You have to remember that we typically graduate sixty people per year. So that’s 25% of the people in the 10 year range that I fell into.
I attached some pictures below. Yes, that’s me in the last picture with a very tipsy Lynn T. I hadn’t seen her in years! After getting 150 people to confirm I thought it would be great if half of them showed up. And half of them did. And so did the other half. And another half. And another half. They had a sign in sheet in the back and we had over 300 alumni sign in. Plus I have no idea how many spouses, dates and friends were running around. This quick little get together packed this place and kept the bar open until 1:30 in the morning when they finally threw us out. (Which brings up two interesting points: (A) Baldwin has a bar and (B) it stays open until 1:30! Who knew!)
I can’t remember a night I had so much fun! I saw so many people I hadn’t seen in years! People I never would have run into at a reunion because they weren’t in my class. All through the night I kept thinking about what next year is going to be like. I know it will be bigger. Can we get 500? Can we get 1,000? Facebook really did help us have a fantastic event.
I tend to use technology to further my career. I blog about technical topics. I write technical articles. I answer technical questions in forums. But Facebook has really turned into a medium where I interact with my non-technical friends. I think email is the only other thing like it. Is this how you use Facebook?
Tuesday, October 13, 2009
I launched the updated Ask SQLTeam almost a week ago and I’ve noticed a few interesting things.
First, a big thank you to the people answering questions. As people answer questions and their answers are voted up they get “reputation”. Right now the top 3 users in terms of reputation are mrdenny, Kristen and TG. Overall 27 people have earned the “Teacher” badge. That means they’ve answered at least one question that someone else voted up. Anyone that has earned 15 “reputation points” can vote up answers. When your answer is voted up you get 10 reputation points.
I expected we would be a little short of questions to start with but I didn’t realize that would be the biggest limitation on the site so far. We have plenty of people willing to answer questions. There just aren’t enough good questions to answer. Hint: Ask your SQL Server questions! There are lots of bright people willing to help out with SQL Server questions. I considered seeding the site with fake questions but that just doesn’t seem right. Hopefully allowing people to log into the site with their forum username and password will make it easier for people to participate.
The format is certainly a BIG CHANGE from a traditional forum. I often gazed longingly from afar at StackOverflow. I used the site a little to get my ASP.NET MVC questions answered but always felt a little too guilty to go answer SQL Server questions. If you’ve participated at StackOverflow then you’re used to it already. If not, it truly is a different way to ask and answer questions. The biggest change is that people are expected to edit their questions and answers rather than posting additional information. If you ask a question and someone wants clarification you’re expected to update your question rather than just add another post. Answers are the same way. This takes a little getting used to if you’re just interested in throwing up another post.
Some of the questions that have been asked would probably be better as a forum discussion. These are cases where it’s less of a Q&A and more of a guided discussion toward the answer. I’m not sure what the best way is to weed these out. Hopefully as people get more experienced with the site they’ll learn what’s appropriate.
One of the interesting questions people have is whether this will take traffic away from our existing forums. I don’t know the answer to that yet. Check back in six months and we’ll both know. I do expect it to take a certain amount of traffic but my hope is that the combined traffic is higher than just the forums before. People will probably prefer one over the other and gravitate to one location.
If you want your own site based on StackOverflow you can sign up at StackExchange. They are in open beta right now and won’t start charging for a while yet. The list of existing sites covers a fairly broad range of topics. Since this group was seeded from StackOverflow the list tends toward the technical in nature. One of the most popular is about World of Warcraft. Go figure! Another interesting site doing very well is Moms4mom.com – a site for parents to share parenting advice.
Last week we launched Ask SQLTeam as an alternative to our forums. One of the interesting features of the site is that it uses OpenID as a login mechanism. Google and Yahoo both support OpenID and you can use them to login. What I really wanted was a way to login using a SQLTeam.com username and password. So I had to make SQLTeam.com an OpenID provider.
When you get to the main login screen just enter “http://openid.sqlteam.com” in the text box.
After clicking the Login button you’ll be taken to the SQLTeam OpenID page. Here you login using your SQLTeam.com forum username and password.
After you login you’re asked to confirm that you want to proceed and login using this OpenID.
After you click “yes” you’ll be taken back to Ask SQLTeam and given the option to create a new user. (See below if you already have an Ask SQLTeam account.) After clicking “Create New User” you’ll be taken back to the home page. Don’t forget to update your profile with your Display Name.
If you already have an Ask SQLTeam account you can still use your SQLTeam.com OpenID with your account. The site supports each account having two OpenIDs associated with each account. On your profile page, just look for the “new login” link. It will walk you through the steps above. After that you can login using either OpenID.
Strongly worded disclaimer: Please be aware that this is beta software. I haven’t tested it as extensively as I’d like. I also designed this specifically to work between the two sites on the SQLTeam.com domain. Using this as an Internet wide OpenID isn’t supported and may be actively prevented at some point in the future. My choice of URL isn’t ideal to support OpenID across the Internet. This feature is designed solely to allow existing forums users to easily try out Ask SQLTeam.com.
That all said, give it a try. It seems to work well and I’m happy with the growth in Ask SQLTeam so far.
Wednesday, October 07, 2009
I stared SQLTeam.com nearly ten years ago. I wanted to build a place where people could learn about SQL Server. In the early days we had something called "Ask SQLTeam". People could submit questions and we'd use those to get ideas for articles. We tried to answer as many as we could on the site. Gradually the flood of questions became too much and that changed into the forums you see on the site today.
Today we're bringing Ask SQLTeam back. But in a different way.
I've watched the success of http://stackoverflow.com with interest. It has a couple of features that I really, really like. It's focused on getting great answers to questions and that answer is determined by the users. It's got much of what I wish I'd been able to write for SQLTeam.com. The people behind StackOverflow are making the software available to third-parties. I've signed up and I'm using the software behind the new Ask SQLTeam.
I've always taken great pride that the forums on SQLTeam were a great place to get questions answered. The members take pride in getting people's problems solved. The same thing will be true on ask.sqlteam.com.
I'd like to invite you to visit the site at ask.sqlteam.com. Take the question that you going to post in the forums and try it out there. You'd don't even need to register in order to post a question. Take a minute and answer a few questions. After ten years of doing this I’ve realized there are always more questions coming.
If you’re not familiar with the StackOverflow concept you can read our FAQ at http://ask.sqlteam.com/faq. As questions are asked, multiple people can answer and vote on which answer is the best. It will be easy to see which answer the community voted up and what answer was chosen by the person that asked the question.
The SQLTeam.com forums aren’t going away and will always be a great place to have a discussion on SQL Server. I’d encourage you to take a look at http://ask.sqlteam.com though. I think it will be a great place to get SQL Server questions answered. You can use either -- or both. It's up to you.

Wednesday, September 30, 2009
I was recently asked if I thought the PASS Summit was appropriate for new database administrators. My answer was a resounding YES! But I wanted to add some specific reasons. If I was a new DBA here are the 12 sessions I’d try to attend at PASS:
Proactive DBA: Manage SQL Server Better
Ross LoForte (Microsoft Corp.)
The Ultimate Free SQL Server Toolkit
Kevin Kline (Quest Software)
DRP101: Learn The Difference Between Your Log And Your Cluster
Brent Ozar (Quest Software)
Practical Performance Monitoring and Troubleshooting for the graduated beginner but not yet expert.
Joe Yong (Scalability Experts)
Securing and Hardening a SQL Server Implementation - Notes from the Field
Ross Mistry (Convergent Computing)
Insight into Indexes
Gail Shaw (XpertEase)
SQL Server Execution Plans From Compilation To Caching To Reuse
Maciej Pilecki (Project Botticelli Ltd.)
DBAs Behaving Badly... Worst Practices for Database Administrators
Rod Colledge (Independant Consultant)
Storage for the DBA
Denny Cherry (Awareness Technologies)
Understanding Logging and Recovery in SQL Server
Paul Randal (SQLskills.com)
SQL Server 2008 Manageability Features
Peter Ward (WARDY IT Solutions)
Troubleshooting applications accessing SQL Server
Abirami Iyer (Microsoft CSS)
Lakshmi Jonnakuti (Microsoft CSS)
There’s a little bit of everything thrown in. You’ll learn about backup, security, disaster recovery and performance. I threw in Kevin Kline’s session on free tools which will help with all of those.
There are also some pre-conference sessions that are appropriate for new DBAs. Either one of the following sessions on Monday would be helpful:
Care and Feeding of the Transaction Log (DBA Track)
Kalen Delaney (SQLearning)
Speaker Q&A: The Biggest Transaction Log Myth
SQL Server 2005/2008: Indexing for Performance (DBA Track)
Kimberly Tripp (SQLskills.com)
Paul Randal (SQLskills.com)
Friday also brings two great choices:
Practical Performance Monitoring and Troubleshooting (DBA Track)
Andrew Kelly (Solid Quality Mentors)
Speaker Q&A: Wait Stats Can't Wait
Disaster Recovery: Tips, Tricks, and Techniques (DBA Track)
Paul Randal (SQLskills.com)
Kimberly Tripp (SQLskills.com)
In addition I think one of the biggest benefits of PASS is the people you’ll meet. You’ll find people like yourself in all these sessions. Knowing other new DBAs that you can share problems and solutions with is very valuable. Many of the people I ask for help with problems today are people I met through PASS.
I’d also encourage you to buy the Summit DVD. The price is very reasonable and you’ll get access to the other 150+ sessions that you didn’t have time to attend.