Free Newsletters

   All InfoWorld Newsletters
Database Underground | Sean McCown » TAG: General Database

May 14, 2008 | Comments: (0)

IT spooning

Have you ever been working on a problem and had a colleague pull his chair over to watch you? And the more you do, the closer he gets because he has to see your screen. And you actually end up spooning in your chairs. Well, let me tell you, it's not only a beautiful sight, but it's a good way to build closeness among workers.

Anyway, I just had like 3 other guys here at my desk, and we had this spoon train going on. It's cool though, because you've got this group of guys looking at something together and hopefully they've all got good breath. It's the way things should be learned though, right? Books are ok, but it's better to be learning directly from someone instead.

So go grab a co-worker and spoon today. You'll be glad you did.

Posted by Sean McCown on May 14, 2008 08:06 AM



May 12, 2008 | Comments: (0)

The vendor that could

It was recently brought up to me that while this blog is listed as a general DB blog, I tend to write more about MS than any other vendor. I agreed that that was the case. Then the person asked why, since there was so much other DB news out there.

To that I simply replied... well, MS is the only vendor who keeps me informed of everything they do (almost). Oracle, IBM, Sybase, MySQL, etc... they never tell me anything. I get press releases from MS, I get training materials from them, I get books, I get all kinds of info all the time. Apparently MS wants me writing about them.

So anyway, it's no big mystery. I write a lot about MS because they're making sure I know what's going on. And nobody else does that.

I do get other vendors writing me about stuff they think is interesting, and when our interests align, I write about them. But I can't write about something I don't know about, and I don't have time to go beg all of them to give me something juicy.

Posted by Sean McCown on May 12, 2008 12:33 PM



May 08, 2008 | Comments: (0)

Database shoplifting

In my SSWUG newsletter this morning there was a short article on database shoplifting. It wasn't really an article as much as a musing. Anyway, Stephen goes to talk about how most data theft comes from within the company by trusted employees who turn around and use it against the company in some way.

I can't really understand why they would do something like that. It's not like the companies treat them like criminals or anything when they turn in their notice. Oh, wait... strike that.

So what can you do to prevent your database from being stolen? Well, I talk to a lot of vendors... and I mean a lot. And it seems like none of them are even mildly concerned with this aspect of IT. Even the security focused companies I talk to aren't concerned with people stealing data or databases. Sure, they're concerned with it in theory, but nobody's really working on the problem. How do you keep someone from stealing your backups? You can password protect them, but what if the DBA who knows the password is the one stealing it? What about just being able to steal the data files? What's to keep a DBA or NT admin from stopping the service and taking the data files to restore on their home system? It's nice that so many vendors have figured out how to audit DBs, but the damage could already be done if you're not careful.

Microsoft needs to give us a way that we can make sure our data files can't be restored on unauthorized machines. Hell, for that matter, so do Oracle, IBM, and the rest of them.

I believe Imperva does some good work in this area. They allow you to define an Imperva admin and he supercedes the NT admin so nobody can shutdown services w/o the Imperva admin giving them rights. And they can keep even domain admins from being able to copy or move files they're not supposed to.

The database field is still fairly young in terms of other fields. So we're still figuring out where all the gotchas are and it's going to take some time to get everything worked out. The problem is that enough people have to have these theft problems before the vendors will start doing something about it.

Posted by Sean McCown on May 8, 2008 08:06 AM



April 15, 2008 | Comments: (0)

Are remote DBAs a good idea?

I got an email from a marketing rep a while back telling me about this company that does remote DBA work and wanted to know if I was interested in doing a story on them. Well, normally I turn stuff like that down flat because I've seen those companies before and they're typically nothing more than a glorified NOC (Network Ops Center). OK, they're probably not even that glorified, just expensive. But there was something about the way she worded it that got me curious. So I emailed her back and before long we were on the phone.

Enough prelims though, here's what I have to tell you.

The company is DatAvail and they do DBA outsourcing. Only it's much more than that. See, I had a load of questions going into my briefing like: What about companies who need a fulltime DBA? What about other functions DBAs perform like providing end user and developer support? What about security? What about understanding a company's apps and processes well enough to be effective and guide them properly? So all that I brought to my briefing with Mike Jones, the president of DatAvail, and Sloane Stricker, vice president and CTO.

I've had experience with companies like Perot Systems before, and needless to say I was not only less than impressed with their poor performance, I was astounded with some of the moves I've seen them pull to keep clients. So I was expecting DatAvail to be more like this. But these guys not only knew what they were doing, they had an excellent presentation that I could tell wasn't BS. They answered all my questions honestly and even gave me some technical details to prove what they were saying. What can I say, these guys really know their stuff.

And from what I can tell, they can actually fulfill every aspect of your normal in-house DBA. When you get an account with them, they assign a primary DBA to your site. He then goes out to meet you and spend a couple days getting to know the people and the layout of the place. He probably also spends some of that time getting setup as well. Then when he goes back home, he's available to you as any DBA would be. Your users are free to call or email. Your devs are free to ask advice. And he is involved in business meetings for projects, upgrades, new dev initiatives, etc. It's just like he's your dedicated DBA. They told me that they have one client who deals with policemen and they often get calls directly from the police themselves in their squad cars needing support for their on-board systems. And that's the level of services these guys can provide.

One advantage I can see is that DatAvail covers all flavors of database, so if you take on a 3rd party app that needs Oracle, or another vendor you don't currently have in-house, you don't have to worry. They can handle it just fine and you don't have to run out and get another DBA or send your DBA to classes just to support a single app. Another advantage is with this huge company of DBAs, you've got an entire team working for you. Your primary DBA doesn't work in a vacuum and if he runs up against something he doesn't know how to handle, he can go to the others as a resource. It's really an excellent arrangement.

I'm not being paid by these guys so I can say whatever I like. And I've seen a lot of these outsourcing companies come and go, and I've seen quite a few of them in action in my travels. And DatAvail seems to have something the others don't. Whether that something is expertise, a true service model, pride in their work, what... it doesn't matter. The point is they impressed me and they're the only services company I would not only consider working for, I would be honored to work for them.

I really hope they're as good as they say they are because they sound like they really not only know their stuff, but that they actually care about giving you REAL DBAs.

Of course, this kind of service isn't cheap. And while it depends on the level of service you need from them, you can probably expect to pay what you would pay a good DBA, so you're not really out any money there. What you are out is the hassle of placing adds, paying insurance, and having your DBA bail on you in the middle of a project as I'm assured they have a very low turnover rate.

I actually plan to milk this topic a little bit so in the near future I'll be discussing some of these ideas and hopefully we'll be able to hash out whether or not a remote DBA is good for you and what you should look for in a managed service.

Posted by Sean McCown on April 15, 2008 07:38 AM



April 09, 2008 | Comments: (0)

Scattered Data

I know someone right now who is splitting a database into separate instances for performance purposes. Now, this happens to be a SQL Server specific installation, but the concept holds true for all the vendors.
The problem is they're putting the 2nd instance on the same box, and leaving the DBs on the same disks. And not only that, they're doing double writes on some of their busiest tables (without using 2PC) to keep the instances in synch. This is just a disaster waiting to happen. But not only that, it completely defeats the original purpose for splitting it to begin with. If you want to increase performance you don't add the overhead of a 2nd instance without making other changes to compensate. And I can't think of a performance problem that would be solved by putting something on a 2nd instance. Maybe if you just wanted to make sure that one of the instances got the lion's share of the memory, but other than that, there's no real reason. If you're going to separate instances for those reasons, separate boxes too. It's that simple.

This ties in really well with a blog I've been meaning to write for a while. It's no wonder users hate coming to us most of the time. It seems like we're always making projects a bigger deal than they need to be and then we plan them wrong and mess it all up. And that's a valid concern from the user's perspective.
Look at how many times someone comes in with a simple request to move data from one place to the next... something that would take 10mins, and we drag it out with a project plan, data mappings, models, etc. It's enough to make them just do it themselves... if they only had the rights.

But you have to understand why we do this. And don't get me wrong, it gets to me sometimes too. There are so many times I want to just do the work and be done with it. Give me 30mins and I'll just bang this one out and move on. But you just can't do that. What you have to realize as an end user is that you have this small project for us to do and so do the other 70 groups in the building. And the next thing you know we're 6mos down the road with 200 extra processes going from one box to another and nothing that tells us who the business owner is, how often it goes, why it goes, who to charge for disk, how often to backup, etc. Sure, we're your only IT dept, but you're not our only customer. We need to have something that says where this data's going, where it's coming from, and who's in charge of it... and why. Maybe you're requesting something that we're already pulling and we can just give you access to that instead. There's no reason to pull it twice, right?

So anyway, I feel your pain. I really do. And I even share it with you sometimes. But this is how it has to be if you want us to know what you're talking about when you come to us and say, where's my data, or what's this process for, or do we have a process that does this?

Posted by Sean McCown on April 9, 2008 10:07 AM



April 07, 2008 | Comments: (0)

Generating data

OK, I found a couple things this weekend that were pretty cool.

First, Red-Gate has a new data generator. It's been a long time since a standalone data generator has hit the market. I'm not sure why, but so many think that they can get away with testing their apps without data to back it up. This becomes particularly important in fields like healthcare and insurance where you've got a lot of privacy issues. It's a lot smarter to generate test data than to try to figure out a way to properly obscure the sensitive portions of your data. It's not only smarter, but it's also easier.

The problem with generated data in the past has been that it didn't look real enough and a lot of people say that it isn't valid or that it's too hard to work with random characters. Well, if you're talking about working with random characters for names and addresses, etc I'll give you that. It's much easier to hold a training class or test scenarios if you've got real names, etc in your DB. However, the data's just as valid as any other data. This is the problem I have with people who don't like generated data. They say it isn't valid because it doesn't represent the business. Well, you can make it represent the business, and the one thing they don't get is that ALL data is generated. There's no such thing as data that's inherently related to healthcare. If there were, you wouldn't have to model the schema and populate it through the app. In many DBs you've got data that's very unclean as well. And that certainly shouldn't be representative of your business. So that data gets generated is just fine and it doesn't invalidate your benchmarks or any other testing you do.

I haven't played with Red-Gate's new tool at all yet, but I certainly plan to. And when I do, I'll let you guys know how it goes because it's an exciting product.

That leads me to the second thing I found this weekend. This is what makes Red-Gate's product so exciting. I found a project up on CodePlex for this new tool. OK, so the tool costs money (though not all that much) and CodePlex is an open source project site. But it's not the code for the tool that's on CodePlex, it's the data generators. You can get data generators for different industries, or different types of data. Personally, that's just exciting because your data's only as good as your generator's dictionary and with everyone adding industry-specific data it only increases your chance for success. And even if you're not looking for industry-specific data, just having access to that many more names, addresses, phone numbers, zips, shipping codes, etc is priceless. This is what open source was meant to be. Everyone wins in this situation. Now, I really don't admonish Red-Gate for charging for the tool because they're a software vendor. What do you expect them to do? But I can't think of any other data generating product that has open source dictionaries posted anywhere. It follows the green computing movement. Sure, they charge for the product, but they're already wrapping a community around it. Nice job guys.

Now, like I said, I haven't seen it yet, but I'm really hoping it'll be the same quality as the rest of Red-Gate's tools.

And as for data generators... the only other standalone generator I can think of is Data Generator by Quest and they've taken that away from us and kinda rolled portions of it up into Benchmark Factory. But Quest doesn't have an actual data generator anymore. I guess they figured it wasn't important enough. The only real reason to stop development on it would be because they weren't selling enough. And from the talks I've had with people at Quest about other things, they typically interpret this to mean that the industry just doesn't want that particular tool. Sometimes that's right, but I'm thinking quite often it's not. It isn't that the industry doesn't see the value, it's usually that Quest values it too highly and nobody want's to spend several thousand dollars for a simple tool they use for development. I think that if Quest had dropped the price (drastically) of Data Generator, they would have seen an increase in sales because then it wouldn't be so costly for dev shops to generate test data.

This is a concept that Red-Gate has always gotten as a matter of business. They don't over-charge for any of their products. They've always understood that simple tools should have simple price tags and they've done very well with that philosophy. While others like Quest tend to try to get their millions in just a few sales.

Just for fun though, here's a list of some other data generators out there.

GenerateData -- www.GenerateData.com -- Open source and these guys have a sense of humor. They advertise not only being able to generate your data, but also to help you 'score with girls' and it apparently 'does your laundry' too. I like these guys just for not taking themselves too seriously.

TurboData -- www.TurboData.ca -- from $200 - $550.

DTM Data Generator -- http://www.sqledit.com/dg -- $160-$240

GS Data Generator -- http://www.gsapps.com/products/datagenerator -- $600-$1,950

Advanced Data Generator -- http://www.upscene.com/ -- $190-$230

DataTect and ER/DataGen -- http://www.datatect.com/ -- $600-$1,750

DataGen -- http://www.e-naxos.com/datagen.aspx -- $400-$8,000

DB Data Generator -- http://www.datanamic.com/datagenerator/index.html -- $250-$275

Anyway, so there are some other choices. And the next logical step would be for me to go through each one of them and build a matrix of functionality. Yeah, if only time permitted that. I'll try to hit one every now and then though and report back on them as possible. It does make me wonder though why Quest chose to get out of that market. There seems to be lots of play.

And the importance I think is going to be speed and diversity, right? I've used generators before that took way too long to push data across and you just can't have that. I'm not going to mention which one it is, but it was a big one.

OK, I think I've exhausted this subject. Except to say that a quick search yielded no results for online communities like Red-Gate has started. And there's real power in that.

Posted by Sean McCown on April 7, 2008 07:59 AM



March 25, 2008 | Comments: (0)

Oracle vs SQL Server

OK, while I'm really bad about approving comments (mostly because the platform makes it so painful), I do want to answer a few of them here real quick.

First and foremost because this is bothering me. I've been in DBs for 15yrs now. It's not all I do, but it's certainly what I do best. So you guys don't have to remind me again and again that there's a difference between 'SQL' and 'SQL Server'. I'm fully aware of that. However, when writing long posts, it's nice to have your audience be able to follow along in the conversation a little bit. Once I establish that I'm talking about Oracle and SQL Server, I should be able to short it to SQL without getting spammed by people who have to have everything spelled out for them every time. I'm sorry that it confuses some of you sometimes, but learn to follow a conversation. I'm clearly not talking about the language. One fellow even said that the proper name was Microsoft SQL Server and that's what I should use. Well, sure, I suppose... but I don't see any of you getting confused when I just say Oracle. Oracle is a corporation. They make many products. Why have I never gotten an email telling me I should call it Oracle Database 11g every time? Could it be that you know what I'm talking about without me having to spell it out every... single... time? I've talked with devs and PMs at both MS (that stands for Microsoft Corporation) and at Oracle (that's short for Oracle Corporation) and none of us ever have any trouble keeping up with the fact that we're talking about DB platforms and not ANSI (that's short for American National Standards Institute) standards. So I'm pretty confidend that you guys can do it if you put your mind to it. Ok, I'm glad I got that off my chest.

Now on to the real topic. Some of you gave some really clear, lucid, well-thoughtout comments. And others called me names and contributed nothing to the conversation other than acrimonious fodder. That's fine. I won't be concentrating on the latter.

Some of the better comments were by the Oracle people themselves. And I'm not surprised... they're a bright bunch of guys and they can make their point without calling names.

What I'm seeing though is interesting. And if we went through the same exercise with MS (again, short for Microsoft Corporation) we'd probably get pretty close to the same results. There are plenty of people who agree with me and who have a hard time finding the Oracle (that's Oracle Database 9i/10g/11g, not Oracle Corporation, sorry to be vague) answers they're seeking. It's not that the answers aren't out there, it's just that they don't seem as readily available as they do for MS (this is a tricky one... here I mean Microst SQL Server 2000/2005/2008 in any edition, and not Microsoft Corporation as a whole).

And there were those who thought I was barely applying myself because they never have any trouble finding help with their Oracle Database 9i/10g/11g (in any edition) product. Perhaps we're both right. It's all in what you're used to. In fact, there was a local IT group around here that started circulating that original blog post and most of them agreed with me. And a lot of these guys are DBAs in mixed shops.

However, I will say though that while there were plenty of people who don't agree that Oracle resources are hard to find, it's still fairly overwhelming that MS (this time I mean Microsoft Corporation) resources are easier and more available.

Someone asked me why I just didn't go to OTN. Well, I always start there, but hey, I get pretty tired of having to sit down and pick through dozens and dozens of pages to find something that should be fairly easy. And it would be nice to sit back and watch a video now and then too. I personally learn much better visually. So I like video training. And it's hard because almost no vendors make any modern Oracle (that's short for Oracle Database 9i/10g/11g in any edition) training. In fact, I don't know of any companies who produce any real Oracle (that's short for Oracle Database 9i/10g/11g in any edition) training on even close to the same caliber as the training for MS (short for Microsoft Corporation) products. Take AppDev for example. They've got excellent training, but they only do MS (short for Microsoft Corporation) products. And even other vendors who do video training usually don't touch Oracle (that's short for Oracle Database 9i/10g/11g in any edition). So why is that? That was really the crux of my discussion initially. Is nobody using Oracle (that's short for Oracle Database 9i/10g/11g in any edition)? We all know that's not true. Are Oracle (that's short for Oracle Database 9i/10g/11g in any edition) DBAs just born knowing everything about Oracle (that's short for Oracle Database 9i/10g/11g in any edition)? Of course not. So what is it about the Oracle (that's short for Oracle Database 9i/10g/11g in any edition) community that makes vendors stay away from teaching the product? It's not the fact that Oracle (short for Oracle Corporation) is producing such fine training that vendors just can't do better. Is it just that with Oracle (that's short for Oracle Database 9i/10g/11g in any edition) being based in Unix/Linux, that their techs just prefer to read rather than watch videos? Is that it? You guys need the command-line so much you can't stand to use a GUI of any kind, if even to learn? And this is the atmosphere I find in the Oracle (that's short for Oracle Database 9i/10g/11g in any edition)community. Again, it's not that the information isn't out there, it's that it's harder to find and is unfriendly.

Let's take my very recent experience with setting up Data Guard. I went to the OBE and I followed it as best I could. The problem was the OBE was for Linux and I was on Windows (that's short for Microsoft Windows 2003 Enterprise Server). So some of the directions didn't translate well, and if the slightest thing goes wrong, it offers no advice at all on how to get it back on track. To boot, there are some things that have to be followed to the letter, and some others that can be loosely followed, and the OBE doesn't give you any guidance on which is which. And I found one for Windows (that's short for Microsoft Windows 200/2003 Server in any edition) too, but it wasn't much better. So don't go talking to me about how complete OBE is and how I'm a fool for not kissing the feet of the ones who wrote it. It could be much better. But again, why isn't there more of a demand for rich training content in Oracle (that's short for Oracle Database 9i/10g/11g in any edition)?

Still others of you said I was a fool because Oracle (that's short for Oracle Database 9i/10g/11g in any edition) is much easier to support than SQL (this is a tricky one... here I mean Microst SQL Server 2000/2005/2008 in any edition and not the ANSI SQL language standard).
Well, it doesn't take many examples to ferret out the answer here. Just look at what it takes to backup Oracle (that's short for Oracle Database 9i/10g/11g in any edition) vs what it takes to backup SQL (here I mean Microst SQL Server 2000/2005/2008 in any edition and not the ANSI SQL language standard since you can't backup a language standard and since the discussion is clearly about database platforms).

And I believe I gave managing tablespaces as an example before and someone said that managing tablespaces was easy because he does it all the time and he can do it in a single command. Yes, that's true, but you just proved my point. You do it all the time. In SQL (here I mean Microst SQL Server 2000/2005/2008 in any edition and not the ANSI SQL language standard since you can't backup a language standard and since the discussion is clearly about database platforms), I don't have to manage tablespaces (or filegroups) because they autogrow. The only time I have to manage a filegroup is when I've set a hard limit on it and it's run out, or when the disk runs out of space. In Oracle (that's short for Oracle Database 9i/10g/11g in any edition), if I create my tablespace with the wrong block size, it can only grow so big and I have to manage it now because my table to bigger than I thought it was going to. Now they have to bigfile parameter in 11g (that's short for Oracle Database 11g), but that's only very recent.

I did get one very interesting comment on whether these differences are because their respective customers are doing different things with the products. This is exactly what I was talking to one of the MS (Microsoft Corporation) executives about last year. I was asking him why Oracle's (Oracle Corporation, not the database platform) customers appear to be asking for different things than MS's customers. It was an interesting conversation on the database market in general and how people view each product.

Database platforms have definitely grown into a religion. No matter what MS (Microsoft Corporation) does they'll never be able to shake the small-time reputation of their youth in some people's minds. That's just a fact. Which one is better really depends on what you're doing with it. I've found that SQL is much better at getting up and running and building apps quickly. Oracle is just too complicated for normal people to be able to pick up a book and a CD and start coding within any reasonable time.
However, when you look at Oracle's Data Guard, it's lightyears ahead of SQL's mirroring. And I sincerely hope that MS takes a page out of their book and realizes that HA technology can be so much more than they're making it.

OK, I hope this was long enough for you guys. I know it was for me.

And I'm not knocking Oracle as a platform. I never have. But come on guys, let's be honest. You're not the most user-friendly kid on the block.

Posted by Sean McCown on March 25, 2008 09:07 AM



March 24, 2008 | Comments: (0)

Protect you server against unwanted deletes

I'm going to take a short break from the Oracle/SQL Server controversy to talk about file recovery. This doesn't necessarily apply to DBs, but then again, it can under the right circumstances.

I was writing a process to ship trace files to another server for analyzing and I had the line commented out that actually inserts them into the table and all I did was delete them. OK, fine. So what to do. Well, not long ago I got my copy of Undelete Server from Diskeeper so I decided what better test than to try it on a real production mistake?

So I loaded it on my server and it ran in emergency mode, which doesn't copy any files to the hard drive. If you have a CD it'll run from there, but I just ran it from a separate partition. Anyway, I just pointed it at the folder that had the files deleted and it brought them all up in the window with their original file names. All the undelete programs I've seen in the past have kept the cryptic system names and you had to sift through them all to see which files you needed. And if you brought back a lot of files you had to rename them all once they were all recovered. It was a huge pain.

So Undelete brought back a couple hundred files to the original location with all the original file names. There's not a better test of a product than that for me because it actually pulled my butt out of the fire.

I'm officially recommending everyone get this and put it on their servers just in case something happens. You'll never know when you need it and like I said, even DB work can take advantage of this because when copying files at the OS layer, problems occur and things that shouldn't get delete could be without notice.

What can I say, I'm sold.

Posted by Sean McCown on March 24, 2008 10:13 AM



March 20, 2008 | Comments: (0)

Oracle's community: part 2

Well, it seems as though I may have struck a nerve yesterday. And I'm always surprised to see the people who are reading me.
I got a lot of comments, but even more emails, and the results are mixed. I haven't added it up but the count is pretty close to have that agree with me. And that's fine. One thing I'm finding out is how passionate the Oracle people are about their DB.

One thing I thought was really funny was the wide range of comments I got. Like I said, some agreed with me, some called my mother everything out there, and one even went so far as to defend Unix, but say I was right about Oracle. I love that one personally.

And you've got to understand this though. I never said there were NO forums or documentation. I said that it's really difficult to find anything when you need it. And it's hard to find good online training that's detailed enough to make it worth your while. Also understand that I'm out there like the rest of you trying to find answers to some issues that I run up against. And quite often it's not that easy. When I have problems with SQL Server it's always somehow much easier to get what I need.

So what does this mean then? Well, going from my comment stats I'd say that there are plenty of people out there who say I'm wrong and who are very certain that Oracle's community is really on the ball. And there are those who don't. So what I can gather from this is that maybe Oracle hasn't done enough to get the word out on all of their resources. Because while I don't know the research skills of everyone who wrote me, I do know my own. I research things for a living basically. And if I've had problems finding some of these resources, then I know others have too.

So the question stands: How does the Oracle community go about advertising its resources?

And just to tip the scale a little bit, one area I think Oracle has it over Microsoft is in its downloads. When I go to Oracle to download anything, all the downloads are clearly marked on a single page. Microsoft just isn't like that. Sometimes even finding a service pack for SQL is like finding help for Oracle. I really wish Microsoft would put all of their downloads for SQL on a single page so we could find what we're looking for without having to be creative or learn regular expressions.

However, I will so to those of you who said Oracle is easier to admin that SQL, you're just crazy. You've clearly never had to manage tablespaces in Oracle before. However, pretty much the only thing that comes to mind that is easier in Oracle is setup. Microsoft still can't seem to pull together a nice, clean, fast setup. There are still too many screens to go through and too many button clicks. And while Katmai can be scripted, you can't record it as of yet so all the scripting has to be done by hand.

Posted by Sean McCown on March 20, 2008 09:50 AM



March 19, 2008 | Comments: (0)

The real difference between SQL Server and Oracle

For years now there's been a constant war between Microsoft supporters and Oracle supporters. Oracle has these features, SQL Server has these features, etc. But that's not really where the real importance lies. Sure, functionality is a part of it because your database should be able to do what you need it to do. However, do you want to know what the real difference between the two companies is and why Microsoft has made such a strong impact in the industry?

The answer is simple: information. Microsoft has built such a strong community and its members are committed to helping each other. There are so many forums out there you just don't have time to go to them all. And one of the most amazing things I've found is that the MSDN forums are actually sharked by Microsoft's own PSS and dev teams. You just can't get any better than that. You've got both the guys on the support team, and the guys who actually write the code helping you with your problem. You've got MVPs out there writing new and exciting books like crazy. They're really giving up all the secrets on how SQL works, and what you can do with it.

Oracle is still living in the old days where everything is a good ole boys club. This is the world of Linux and Unix where they started, and it's a dinosaur, man. You just can't afford to do business like that anymore. You have to open up your community and start programs to encourage your best people to help and teach.

If you take any 10 DBAs from each side and ask them to look up a solution to a problem on their platform, the SQL guys will find the answer much faster than the Oracle guys will. And that's just a fact. If you're looking on specifics on how Oracle works internally, it's almost impossible to ferret out the info, but with SQL, there are so many open resources it's just a matter of a few minutes to an answer.

Microsoft also has a Connect Web site where users can enter in bugs and feature requests, and these requests go straight to the dev team. Your voice gets heard.

So the real difference between these two platforms is community. Microsoft has gone to great lengths to build a community and really support it. And Oracle is still doing business the old way. It's almost like Oracle's still proud that they're holding on to the good ole boys club. They're proud of how complicated everything has to be in Oracle. Knowledge is for the few and the special. And this attitude is pervasive in third-party vendors as well. Look at all the vendors out there making video training. I haven't seen any for Oracle, but SQL has tons. OK, I've seen a couple for Oracle, but they're all that old style CBT from the 1990s. But there aren't any high-level Oracle people out there making video training that's affordable for the end user.

And the stuff Oracle posts on its site is incomplete at best. It's just not enough. And it's not like nobody's using Oracle. So the user base is there. Then why isn't the training there too?

I think the third-party training vendors don't have the training available for Oracle because of the lack of community. It's that same attitude propagated by the mothership and the whole Unix world that keeps information from being available. And it's frustrating because being someone who would like to learn more about Oracle I could use some of those resources.

The problem is though that I've sought them out before and they're just too hard to find. And I don't have time to run comprehensive searches for everything under the sun just to figure out one little aspect of Oracle. I'd rather go through a modern tutorial by an Oracle expert that actually explains how some of this stuff works. Show me good examples, explain to me what they mean, etc.

You know ... pretend that there are some people out there who haven't been doing this for 20 years. Because people are going to use what's available to them and what will get them up and running the fastest.

And right now, with all the factors involved, Microsoft is a better overall platform than Oracle because it doesn't matter what your platform can do if nobody knows how to make it work.

Posted by Sean McCown on March 19, 2008 07:34 AM



February 19, 2008 | Comments: (0)

Search and Replace

In writing some code this morning I found it necessary to make some major changes that involved search and replace in SQL Mgmt Studio. I was a little disappointed in the ability of both the SQL tools and Visual Studio to perform rich replace routines.

Here's a simple example of what I was trying to do:

Create View myView
as
Select * from myTable where col1 = 63


I had a couple hundred of these statements in the script and they needed to be changed to:

Create View myView
as
Select * from myTable where col1 < 50
GO


Replacing '= 63' with '< 50' is the easy part.
But try putting that 'GO' statement on the next line between all of them. If there's a way to do it in the tool it's not apparent.

This is why I always keep a version of PrimalScript handy. It has a search/replace util that I haven't seen matched anywhere else. And I wasn't even sure if it would do what I wanted, but it did.
What can I say. I still love this tool. Even though I don't use it for much of my scripting anymore (I just don't do that kind of scripting at my current job), I always have it loaded on my box for emergencies like this.
There are some things I'd like to see PrimalScript's search/replace do, and maybe I'll shoot them a note about some of them. And no, they don't pay me for stuff like this. I actually just love this tool.

Here's a small Camtasia I put together to show you how it works.
SearchReplace.wmv

Posted by Sean McCown on February 19, 2008 10:44 AM



February 06, 2008 | Comments: (0)

Database Insurance

It's difficult having an IT shop these days. You have to manage different types of people along with different priorities from your wide-ranging customer bases. And as an IT director, you want to get the biggest bang for your buck. So you have devs and it's best to have them actively writing code as much as possible. That's how you get your money out of them. And if you have some really expensive sr.-level devs, you want them working on sr.-level dev stuff at all times. You don't want to pay $100K+ for a dev to have him write basic HTML pages.

We had the same thing in kitchens back when I was a chef. If you've got a worldclass chef that you're paying a lot of money, you want him standing there doing what only he can do as much as possible. That is afterall, what makes it worth having him there. So you don't want him running to the walk-in for his own supplies or whipping his own cream. You have apprentices for that.

The situation is different with DBAs though. DBAs are more of an insurance policy. Sure, they're there to guide your data efforts, but they're mainly there in case of a serious disaster. A lot of IT directors get upset when their DBAs aren't completely busy at all times. Afterall, good DBAs are expensive so you want them sitting there doing whatever it is that they do as much as possible. However, that just isn't so. You don't want your DBAs so busy that they don't have time to fully monitor your systems. And you don't want them so busy that 10 projects fall behind because there's a disaster and they have to be pulled onto that instead.

DBAs are just different from devs. A dev will never be called into action with a downed server. Nor will he get a call in the middle of the night that something's running too slowly. So you can work your devs 100% of the time while they're at the office. But DBAs actually have more downtime than you'd expect. Sure, they're busy, even busy as hell sometimes, but not 100% of every day.

Again, DBAs are an insurance policy. You definitely want them around when something happens to your data. However, be mindful of the type of DBA you have in your shop. If you want someone to work on all the projects and do lots of coding, etc, then you want a database dev, not a DBA. DBAs are systems folk. They make sure things run smoothly. So ideally, they shouldn't be attached to any projects, or at least very few.

Posted by Sean McCown on February 6, 2008 12:09 PM



November 08, 2007 | Comments: (0)

The Penguin Mothership

This week I visited Oracle headquarters for the first time. I've been writing pieces on Oracle for about 4-5yrs now and I've finally earned enough credits to be called in.

Now what can I say about Oracle campus except it's nothing short of cool. It's probably one of the nicest tech campuses I've visited. It houses a rather large pond that I'm told used to be home to a few dolphins. That aside though, the campus is very clean and stylish.

Oracle.jpg


There were penguin crossing signs on the roads and big marble torn pages marking building numbers. The grass was well-behaved with plenty of bamboo to go around. What can I say? It was nice.

Being a SQL Server guy I will admit that it was a little strange being on the other side. I kinda felt like Captain Picard aboard the Borg ship. I was surprised to find that everyone was incredibly friendly and to my surprise, they all seemed happy... almost like normal people. They were speaking English too. I don't know why I expected everyone to be speaking some kind of command-line language I don't understand with tubes and wires coming out of them, but it was a pleasant surprise to find they've learnd how to talk just like you amd me. They were all so life-like.

And when lunchtime rolled around we went down to the cafeteria, which is very nice. It reminds me of the cafeterias at many other companies where it's almost like a food court in the mall... except this one was actually clean. And it had style. For instance, they had this water spout for you to get your drinking water out of that had those old style small tiles all around it. The spout itself was very small too. Definitely like something I've seen in the older parts of Italy. But this one combines fashion and function. It's got a reader under the bowl that detects when you walk in front of it and it gives you water. No need for any clumsy valves when you've got a food tray in your hands.

One more twist on the cafeteria that I really loved. They had this table setup between 2 food stations that had tons of veggies and fruits on it. At first I thought it was just a delivery that had been left there, but it was all laid out. I asked my cute Aussie escort (not her name or title) what was going on, and she said that they have an organic farmer come in and sell his produce. Man, I'm tellin' ya... being a former french chef that's right up my alley. I couldn't imagine being able to pick up my veggies for the night based off of what looks good at the time. Seriously, that's just cool.

OK, now on to business. I'm actually installing Oracle 11g as I'm writing this and I think I said it in my 10g review, and it holds true even more now; Oracle is actually lapping MS in ease of install. Installing 11g is so easy I could let my mother do it and not have to worry about it coming out ok. And for a change they've put some time in on the graphics and come up with a very nice color scheme.

Katmai is coming out soon and all I've got to say is watch out MS, Oracle's gunning for your title.

Posted by Sean McCown on November 8, 2007 05:29 PM



October 30, 2007 | Comments: (0)

Errors Can be Fun

A few years ago there was an article on SQLServerCentral.com that gave us some screenshots of some of the funnier windows and program errors. Here's my contribution to the lot.

Yesterday I was troubleshooting a LiteSpeed problem and clicked on one of the EXEs in the program folder to be presented with this message.

BadMagic.JPG

Ya just gotta love programmers.


Posted by Sean McCown on October 30, 2007 08:40 AM



October 29, 2007 | Comments: (0)

The Primal Urge to Deploy

I've talked before about my love for PrimalScript as a VBScript and JavaScript editor. It's just got some features that I've grown to really love. Well unfortunately I just don't get the chance to use it that much anymore because most of the web coding I do is in .NET and I tend to do all that coding in Visual Studio for all the class helpers and such. And since I'm a DBA, and not a Windows admin, I just don't do that much Windows scripting... though it does happen every couple months or so.

Well, now I'm going to get to use PrimalScript more because I've just figured out a new use for it and I just can't believe it took me this long to think of it. See, PrimalScript has this script packager that will package up all of your scripts into an exe so you can put them out there for users without having to worry about them getting at your connection strings or changing the logic. And that's how I've always used it in the past. But it just hit me a couple weeks ago that I can use it to deploy my DB scripts too. See, like many shops, we have to send our deployment scripts to an official change manager who then deploys them into production. It's that whole separation of duties thing we all love so much. Well anyway... the problem is simple... if we send him our scripts, which number in the tens sometimes, we have to make sure we tell him what order to run them in, and then trust that he does it correctly. And then if something blows up there's always that argument about whether the scripts were right or whether he changed something by mistake. Then there's the problem of whether he should deploy to all of our systems because we don't want him to have SQL rights on all of our boxes, etc. So you can see how the process can get fairly complicated and even counter-productive at times.

Enter PrimalScript... now I'm packaging up all my scripts and just sending him an exe that all he has to do is run. In fact, I can put them in order, and even call them with whatever account I like and he can actually deploy code to boxes he doesn't even have rights on. I'm telling you, that's just fabulous.

It's actually pretty easy. All I have to do is specify a .vbs file with a series of osql statements in it. Each osql statement uses an input file as it code source. So whatever script you generate, just point it at the file and you're done. Then inside PrimalScript, you attach the vbs as the script to run, and attach the SQL scripts as data files. They all get compiled up with the exe and you can send the entire set as a single build to your deployment team.

Now the arguments just don't exist anymore. You know the scripts ran in order, you know nothing was changed, and you know they ran under an account that had rights to perform all the actions. Personally, I'm in love.

I don't think this was necessarily the intended use for the script packager, but it certainly works really well. Now that I've written this blog, maybe the Sapien guys will see this and give us DBAs an enhancement that will be just for us. What I'd like to see is something specially for DB deployments and allow me to just attach SQL scripts with user creds and bypass the vbs altogether. That would be nice. This new version of the script packager would also clean up after itself too. It would allow me to create a folder to unzip all the files in while they're executing, and then either let me keep it or delete it. If I were pressed on what I'd want in a perfect deployment utility, I'd also ask for a nice progress screen and a basic report to send back to the dev team to let them know what errors were encountered, or that the whole thing went well. This would close the loop and allow the build to be closed in source control. It would also let me choose which scripts continued on error and which ones halted. I know I'm starting to ask for a lot, but these guys seem to be in the position to do this for us. But at the very least, I'd like to be able to just compile my SQL scripts and run them without a vbs. The way I'm doing it is easy enough and I've already got a template, but all the same... there's no reason it can't be any easier.

So if you haven't already, go get you a copy of PrimalScript and see what it can do for your deployments. I'm lovin' it.

Here's a screenshot of the PS script packager. Notice how you can add as many script files and supporting files as you like:
View image


And NO, the Sapien guys aren't paying me for this. In fact, I don't even think they follow my blog. But it's hard to tell because anyone who's anyone follows my blog. But I'll tell you this... I just got a press release that they're releasing 4 new bundles that should suit everyone's needs. Basically what they're doing is bundling up PrimalScript with their training and script libraries. I think I've seen all(ok, most) of thier training vids and I got a lot out of them. In fact, I still refer to them from time to time simply because I don't do a lot of Windows scripting so it helps to have them as a reference on the odd occasion when I do.

For those interested, here are the links to the bundles:

http://www.primalscript.com/Editions/prokit.asp

>http://www.primalscript.com/Editions/enterprisekit.asp

>http://www.primalscript.com/Editions/universal.asp

>http://www.primalscript.com/Editions/bundles.asp

OK, while PrimalScript is an excellent utility for this type of thing surely it's not the only game in town, right? Well, you're right. There are other apps that do this same thing. What I was a little surprised to find though was that there aren't lots of them. And most of them are really not that good to be perfectly honest.

Here, I'll go over some of them:

Admin Script Editor-- This is a direct competitor to PrimalScript and it's an excellent editor with some very nice features overall. It definitely gives PS a run for its money on features. But while that's true overall, I don't feel that its script packager is as good and here's why. PS let's you run several scripts in a row and attach supporting files. ASE also lets you attach supporting files, but as far as I can tell it doesn't let you run more than one script. Now, you can force the issue if you like by making a master script that calls all the other scripts and then you just attach them as files, but that's an extra step that shouldn't be necessary. It does have a couple cool features though. First, it let's you use console mode which is a way to use a single window in case you have prompts to answer. And second it saves the scripts in specially named folders for execution so you can have separate executions going at the same time w/o inteferring with each other. That's not really relevant to our deployment scenario here, but it's cool nontheless.
Here's a screenshot of the ASE script packager. From what I can tell, you can only add one script to run. If you can add more, it's not obvious:
View image


You know though, most of the other utilities aren't really worth going into in detail because they're so limited in functionality it's just not worth my time. However, I'll list a couple of them for you so you can read up on them if you like.

ExeScript
Vbs2Exe
ScriptCryptor
Batch File Compiler Pro 3.0.2
Quick Batch File Compiler 1.0.1.8


OK, and finally to finish up... some of you may not be very familiar with VBScript and may not know how to code the solution even if you got one of these tools. So here's a simple script that you can save as a .vbs and use to deploy your .sql scripts to as many servers as you like.

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
''CERT
WSHShell.Exec("osql.exe -Sservername -E -ic:\DWBuild\DBA1255961.sql -oc:\DWBuild\Errors\DBA1255961.txt")

Now, all you have to do is save that as a .vbs and run it. Of course, I hope I don't have to tell you to use your own paths and scripts, right?

You can have any SQL in that file that you want. I routinely have several hundred lines of code in mine and they run very well. And if you have more than one .sql file to run, simply tach on another .Exec line and change the file name that the osql is pointing to. It's really that simple. I put the -o there to capture the output because the way the .exe compiles it just runs what you give it, it typically won't spit out errors and you'll have to track them down yourself. Of course, I'm sure all of you have smooth deployments because you've tested your code thoroughly, right?

Anyway, I hope this helps someone. It's an important topic and I think it deserves some attention in your organization.

Oh, one more thing... you can do all of this in .Net and get a lot richer deployment experience, but this solution is a lot easier to get going, and doesn't rely on the framework. And since you might not know much about the guy doing your deployments, it never hurts to keep things as simple as possible. Just a thought.


Posted by Sean McCown on October 29, 2007 10:15 AM



September 28, 2007 | Comments: (0)

Happier Wars

All of you who follow me, know that I've kept pretty good tabs on the backup wars as I was there not only from the beginning, I appear to have been a major player. And while I haven't kept you all up to date with what's going on now, I will soon.

What I want to talk about now is a new war that's about to be waged. This is completely uncharted territory just like backups were when LiteSpeed came onto the scene.

What I'm talking about is SQL accelerators. This is one of the perks of being in the media is I'm always getting first looks at new technology. Well, at PASS last week I spent some time with the SQL Nitro guys and they showed me what they had to offer. Frankly, it was even hard for them to get me to take a look because I've seen these products before and they just didn't work. However, when they pulled me into the booth it only took them about 30secs to peak my interest.

I not only saw a quite impressive demo, they let me get on the box myself and play around a little and it worked with the stuff I threw at it. But that was just a demo box and nowhere near a real environment. So they gave me a handful of licenses to put in my lab and I've been playing with it for about a week now, and so far the results look good. It's still way too early for me to give it an honest blessing, but I'm liking what I see.

For those of you who don't know, SQL accelerators are something the network guys have enjoyed for a long time now. They compress the network packets so you're actually sending less information across the wire. This is a completely untapped area for DBAs to tune. I mean, let's face it... you can only go so far tuning your queries and your box. If the network doesn't keep up then you can't exactly strip it out as easily as you can get a new server or just increase your memory. So this will allow DBAs to finally conquer the network layer of their performance problems as well.

I call this the Happier Wars because once this product gets battle-proven, everyone will follow with their own version. You'll start seeing accelerators pop up all over the place, and then we'll see the SQL Accelerator Wars. I only hope they'll be happier and more civil than the backup wars were.

But whatever you do just remember... you heard it from me first.

Posted by Sean McCown on September 28, 2007 11:43 AM



September 05, 2007 | Comments: (0)

Linux is Alright

There comes a time in every DBA's life when he has to admit defeat in one area or another. Personally, I've done it so much it's old hat for me, so here's another one.

For years now I've been ribbing my friend for being a Linuxhead. Then I bought a Buffalo Terastation NAS for my house. Well, to make a long story much shorter, I lost my array and all of my data along with it. After poking around for a little while my friend discovered that it was Linux-based. So he asked me if he could have a crack at recovering it. I said sure... I wasn't really looking forward to the $3K it would take to have it recovered elsewhere. And did I mention this array had all my SQL backups and other important docs on it? I really couldn't afford to lose everything on it.

Well, after messing with it off and on for a couple weeks, he came over last night with a solid game plan and got the array back up and I was able to pull pretty much everything off of it.

I don't know if something like this would've been possible on a Windows system. He had uncovered an entire world of guys who had hacked the firmware to do one thing or another and that's what allowed him to do his thing. So with things in the Windows world always being so much more formal, that type of hacking isn't as ubiquitous and I might not have been able to get my data back this easily.

Needless to say I'm now rethinking my backup strategies at home. I've got a few DBs that I can't afford to lose, but it's tough. I'm not a corporation so I can't afford fancy tape libraries and the like. Nor are any of the home solutions suitable for the amount of data I backup. I'm basically between a rock and a hard place. I'm not entirely sure what I'm going to do yet, but I can't take a chance on losing that stuff again.

And of course, it's times like these when I bring my new-found paranoia to work and see whether my enterprise backup strategy has any holes in it or not. This type of near disaster is good for you. It's like almost getting in a wreck for doing something stupid. You get to be reminded to be more careful without the hassle and pain of an actual wreck... good stuff that.

So Linux is pretty cool, and my friend Jim rocks!

Posted by Sean McCown on September 5, 2007 10:50 AM



August 31, 2007 | Comments: (0)

Don't Be Such a Pecker!

An interesting debate sprung up the other day. I was called over to a developer's desk to help with an issue and as he sat there typing different solutions, I found myself getting more and more antsy. The problem was he can't type. He pecks at the keys like a princess trying to pick diamonds out of a pile of manure. It just drives me crazy to see people who can't type.
So the debate arose, should everyone in IT take it upon themselves to learn to type? I mean, it IS the way you make your living. Working on a computer for a living and not learning to type is like becoming a surgeon and refusing to learn to sew people up, or becoming a math teacher and refusing to learn your times tables, or becoming a plumber and refusing to learn how to use a wrench, or... ok, you get the idea.
And as a programmer, pretty much the only tool you have for doing your job is the keyboard. So not learning to use it at all is like being a race car driver and refusing to touch the wheel. Or a ditch digger who can't work a shovel. OK, OK, I'll stop.

Seriously though, I type very well. I can clock myself somewhere in the 90s. And while I don't expect everyone to type as well as I do, I would fully expect someone who works at the keyboard every day to at least have a basic knowledge of where the keys are. This particular guy that started this whole thing types stored procedures several hundred lines long. He does it all the time. And he's constantly having to look at his keyboard and then at the screen... keyboard-screen-keyboard-screen-keyboard-screen, etc. It's maddening. Personally, it gives me a headache to do that.

So whatever you do in IT... don't be a pecker... be a typer.

Posted by Sean McCown on August 31, 2007 08:40 AM



August 06, 2007 | Comments: (0)

Reply All

You know, it never fails. You go on vacation, or just take a couple days off and you come back to hundreds if not thousands of emails. And of course it takes you a while to go through them all and you never know which ones are the important ones until you see them. This is when the problem starts. Here you are being forced to go through all these emails, and 40% of them are Reply Alls from actual issues.

Sure, you need to know an issue happened. And it even helps to know the root cause of it. What I'm talking about here is all the useless chatter that comes after...
"Thanks for your help."
"Oh sure, my pleasure. Let me know if there's anything else I can do for you."
"I will. Thanks again for your help."
"You're welcome."

Come on people, is all this chatter really necessary for Reply All? Do the rest of us really have to hear this? What's your goal here... is it to thank the guy, or to let everyone see you being as polite as you can? And remember, while you're being polite to that one guy, you're being pretty rude to everyone else.

Coming back from a couple days off is bad enough, but what about those of us who do on-call support? When I get pulled out of bed and resolve the issue, I typically want to go back to bed and not hear another word until there's another problem. Instead, what I get is another hour of pleasantries. Because remember, being on call means that you have to look at your email every time it goes off. Seriously people, is it really necessary?

I tend to be pretty militant in my guarding of the silence. I personally don't reply all to simple issues, nor do I reply all once the issue is closed. And I usually make it pretty clear to people who do that it's not acceptable behavior. For those who have never had to do after hours support, they just don't get it. I've even gone so far as to call someone every time he hit reply all for something stupid. The confusion on the other end of the line is usually priceless.
"Why did you call me?"
"Well there's an issue. You just sent me an email."
"No, I was just telling him thanks for helping me."
"Then why did you include me and get me out of bed for it."
"I was just being polite."
"To whom? Because I have to get up every time email goes off, so I figured there was another problem since you got me and everyone else on support up."
"I didn't realize you had to get up."
"You complain when we don't answer issues in the middle of the night, so how did you figure that happened if we're not getting up when email goes off?"
"Well, again, I was just being polite."
"OK, well do you call a meeting with everyone in the office just to thank someone for their help in person?"
...etc.

You guys get the point. It's actually a pretty gross breach of support etiquette to reply all for things that have no business going to everyone. Like I said above, it's the same as calling a meeting with everyone in the dept just to carry on a simple conversation with the guy who sits next to you.

I've actually worked in places where everyone in the group got upset if they didn't hear every last word no matter how insignificant. I can remember being called into the boss's office to be asked why I refuse to include everyone on emails. And when I explained that I just don't like to bother everyone with every word I say, I got a lecture on what it means to be a team player. It's funny sometimes the limited focus some people have.

I've also been on the front end of building a support organization where nobody was used to having to take these things into consideration. And what I've found is that people don't even think about things like this. What's worse is even when they're getting woken up for no reason, it still never crosses their minds to limit the email traffic.

The answer is simple courtesy. Even if you don't have a support staff responsible for answering every email that comes across, it's just simple courtesy to not force everyone to listen to your chatter. Hey, email all you want to whomever you want. Just don't make me listen to it.

I put this on the same level as going to a meeting and leaving your phone riger on high on your desk, and going home for the evening with your source code checked out.

Posted by Sean McCown on August 6, 2007 10:22 AM



August 02, 2007 | Comments: (0)

You Can't Spell your own Job?

OK, I had a different blog planned today, but I just got my PASS newsletter and got inflamed again. I hope I don't have to go over this again, but I'll do it as many times as I have to.

DBA = A single DBA.
DBAs = More than one DBA.
DBA's = An object owned by a DBA. The DBA's idea.
DBAs' = An object owned by more than one DBA. The DBAs' toolkit.

It's not that I expect the ordinary person to know these rules necessarily, but I would expect the Professional Association for SQL Server to know how to pluralize DBA.

Posted by Sean McCown on August 2, 2007 07:38 AM



July 27, 2007 | Comments: (0)

The New Guy

It's always interesting going into a new gig. You've got the local politics to deal with as well as new systems to learn. There's really too much to pick up than I could ever cover in a blog, but you've all started new gigs, so you know what I'm talking about.

The other side of that coin though is what it's like to have to deal with the new guy coming in. You definitely get some guys who push the boundaries of what you're used to.

A really good example is this one guy we had at my last gig. He was there about a week, and we were standing around talking about how our Windows guy was going out for his anniversary that night. He was taking his wife to this one place to eat (I don't remember where right now). Oddly enough, that guy showed up at the restaurant while they were eating. He sat at a table near them and kept trying to make conversation. Now, I never did discover his motivation, or what he even hoped to gain, but from there on out he became this stalker and nobody really wanted that much to do with him. Then he started up this campaign of hiding behind cubes to hear what people were saying about him. It was all perfectly creepy. This was definitely a case where he had no idea how to become part of the group, and nobody in the group had any idea how to talk to him either. It was just a bad situation all around.

Currently, my situation is different from any I've ever had. I've been at my current gig for a year now and while I replaced the former DBA, he's still around. I've never been there before. Usually, the old DBA has moved on to different pastures.
One of the hardest parts of my job has been taking the role of DBA from him. He was the only DBA for a long time, and now he still sits right beside me, and it's taken a long time, but people are finally starting to see me as the DBA instead of that new guy who doesn't know nearly as much as the original. But yeah, even when they started coming to me with questions, they'd always go to him right after. I guess they just wanted to make sure the answers matched.

And I don't blame them in the least. It's a new situation for them too. They've still got the guy here that they're used to dealing with, only now they're being told this new guy is the man. People mostly resist change and I'm sure most of them didn't see any reason to switch DBAs.
So, things are starting to workout now, but it was really touch and go there for a while.
Part of the point here is that it isn't just tough on the new guy. It's also tough on the old guys. The new guy has new ways of doing things etc. and they're not sure how to deal with that. He may even directly disagree with what they've been told by other DBAs.

The big question of course, is who's responsibility is it to make sure things go smoothly? I've been told many times that it's MY duty to make sure that I fit into the bunch and it's not their job to make me feel welcome. Personally, I think that's a load of crap. You've got to realize that this guy is coming in here new and he's automatically out-numbered 100 to 1. He's not in on all the politics, or any of the funny stories you guys tell at meetings or anything. How much of an effort can the new guy really make? I mean, you don't invite someone over to your house for dinner and then treat them like crap until they prove they can fold into the workings of your house do you? I certainly hope not.

Anyway, I've got some more stuff to say on this general topic, but I'm out of time right now. Perhaps I'll pick this up again soon.
But for now, let's set a couple ground rules. When you start a new job, try not to stalk your co-workers, and when someone starts at your office, don't make them always have to come to you. Remember how completely they're out-numbered and try to bring them into the fold yourself.

Posted by Sean McCown on July 27, 2007 07:51 AM



July 26, 2007 | Comments: (0)

Personal vs Commercial Software

As you can imagine I get asked by all types of companies and individuals to look at software. In fact, I probably get more requests to look at software than a lot of people even get email. And there's one thing that's becoming abundantly clear to me. People don't know the difference between personal and commercial software.

I used to think that there are so many poor apps out in the wild just because nobody knows how to code, but I'm starting to rethink that. Sure, there's a lot of that going on, but from what I've seen lately, there are a lot of developers out there trying to sell these apps they've written for themselves and assuming that they'll work the same for everyone out there, or that everyone has the same requirements. I'm telling you though, there's a huge difference between personal and commercial software.

I've got a coupld dozen apps I've written over the years to help me do my job at one company or another, and none of them are really ready for commercial use. And I would never dream of putting them out on the market because they're just too specialized. And most of the time, they're just simple little things I've written to save me some mouse clicks. I've written everything from indexing utilities, to things to help me manage DTS/SSIS packages. And most of it isn't hard enough to be considered commercial software either. And that's another peeve of mine. These guys who want $10K for something I could write in a couple days, and probably better. Or something that just puts a slightly different face on something that the native tools already do.

So seriously... for those of you out there who are considering selling an app that you've written, ask yourself these questions:

1. Is it something the rest of us can use?
2. Is it complicated enough that the bulk of the IT world can't easily do themselves?
3. Does it solve a wide-spread problem, or are you contriving a problem to sell software?
4. What will you have to do to make it a real commercial package?

I guess what I'm really trying to say is just think about it before you push another useless app out into the marketplace. I never want to keep anybody from taking their shot. I mean, if you've got an app to sell and a dream to make it big, then by all means, make it so. I would seriously advise you though to ask a few people first and get their honest opinions about it before you go bothering the rest of us. And by all means, price it appropriatly. I'm getting so tired of everything having to cost several thousand dollars per server for the simplest things.

Posted by Sean McCown on July 26, 2007 11:05 AM



June 29, 2007 | Comments: (0)

Why even have a Database?

I stay amazingly perplexed and annoyed at the state of DBs in this world. By now I'm sure it's no shock to many companies that DBs exist and that they can be used to store data. What I'm also very sure of is that a lot of them just don't get it. They look at DBs as a repository for things they'll never need again or something, I guess, instead of using them to make their business run smoother and their customers happier with their experience.

To illustrate...

1. Why does my cell phone company have me enter my phone# while I'm on hold if the person I get on the phone is just going to ask me for it anyway? Doesn't that system talk to hers? If not, then what's the purpose of having me give my #? And if I'm calling from my cell phone, why can't that system talk to the other one and just pick up my #? They know it's me calling because it shows up on my bill.

2. Why is it when I go to the store and pay with my card I have to tell the cashier that it's a debit card? I already pushed the debit button on the card reader... can't these systems talk to each other?

3. When I go to the Dr's office, why do I still have to fill out my address and other info every single time I go in, so they can attach it to my chart? Are you kidding me? You have my info in the computer... why can't you pull it from there?

4. When I take on a new job... why do I have to put all my info in 30 different places? Are you seriously telling me that you can't write a quick little something in say InfoPath or some equal technology so I can put all my info down once and then all the forms read from it and print out? Is this really such a foreign concept? I've been complaining about this for years, and I have yet to see anyone do it. There are so many technologies that can do this type of thing it's just ridiculous that it isn't the standard.

So far I think I've seen one company that really uses its DBs effectively... at least from a customer's point of view. And that's Discount Tire. You can go to ANY Discount Tire anywhere and they'll have your entire history available. They don't bother you with making you give your info again, or ask you stupid questions about your phone # or address. If you need to update your info, just tell them and they'll do it right there. It's excellent.

I know there are other companies out there that use their DBs well, and their customers even benefit from it, but there are far more who don't. I'm just wondering... why do you even have a DB if you're not going to use it to make your business more professional?

Posted by Sean McCown on June 29, 2007 08:19 AM



June 18, 2007 | Comments: (0)

An Excellent Publishing Idea

I just got a press release that O'Reilly publishing is now offering PDF versions of their books in single-chapter downloads. I love this idea because so often I've only wanted one or 2 chapters of a book, but had to buy the entire thing just to get what I wanted.

However, it does make me wonder about the specifics of the plan. What happens if there's a book with a lot of chapters, and I purchase a few of them, and then decide to get the entire book? Will I be able to put those previous purchases towards the purchase of the entire book? Because if you've got a title with a lot of chapters, you could exceed the price of the entire book if you bought them one at a time, and say I've bought 5 chapters, and now I want to buy the entire book... now I've paid that much more for it when it would've been cheaper for me to just get the whole book to begin with.

All of that aside though, it's an excellent idea and I'm sure these details will work themselves out as the program matures.

So rather than give you all the details myself, I'll just paste the press release I received. I will say though that these chapter downloads are something those of us on Safari have enjoyed for quite some time. So I'm glad to see they've expanded the program.

Sebastopol, CA--In today's Web 2.0 driven publishing marketplace, it takes new and creative strategies to get authors and their work noticed by web savvy readers. But even when it is noticed, today's readers increasingly want content in new and convenient ways that suit their digital lifestyles. Along with traditional print formats, they want content they can read on computers, PDAs, and cell phones. For this reason O'Reilly Media--the pioneering publishing company that coined the term Web 2.0--has recently launched several innovative publishing programs aimed at delivering content in formats the tech generation craves.

Starting this month, O'Reilly Media customers have the option to purchase book content by the chapter in PDF format for $3.99.

"As with iTunes, our customers now have the choice of buying the whole book or just the part they want," notes Allen Noren, project leader and O'Reilly's director of online marketing. "I love the usability of these independent chapters. Each has its own table of contents and index.
They're bookmarked and searchable. And they're infinitely portable."

O'Reilly initially rolled out this new feature on 714 books. All these titles are also presently part of the Copyright Clearance Center RightsLink project, which gives customers the option to purchase reuse rights of book content for their Intranets, newsletters, course packs, and websites.

For a real time understanding of the many new choices available for O'Reilly readers, check this example. Readers interested in Scott Raymond's "Ajax on Rails" can find many appealing options when they click on this online catalog link:

http://www.oreilly.com/catalog/9780596527440/
http://www.oreilly.com/catalog/9780596527440/
Along the right hand column there are clearly marked links to:

-- Purchase the printed book for $39.99

-- Purchase the entire book in a PDF format for $27.99

-- Purchase a chapter for $3.99 each

-- Purchase reprint rights for portions of the book

-- Purchase a site license for the entire book or a portion of it

-- And a link to read it online through Safari, an electronic reference library for programmers and IT professionals. A Safari subscription gives you complete access to the electronic versions of over 3,600+ of the latest and greatest books from more than a dozen publishers, including O'Reilly Media, Addison-Wesley, Adobe Press, and Peachpit Press.

While most publishers understand that technology is shifting the ground on which modern publishing thrived for nearly a century, few have the knowledge to implement the immediate and long-term challenges and opportunities presented by these innovations. O'Reilly's new offerings of convenient and reader friendly formats is helping to build a successful future for publishers and authors in a digital era.

Posted by Sean McCown on June 18, 2007 06:33 PM



May 31, 2007 | Comments: (0)

Software Snobs

I often think about how I got into MS products instead of say Oracle or IBM. It’s actually not all that hard to comprehend. I got into MS the same way most people get into their fields. MS was available to me. When I first started, I was in a very small company, and we had SQL Server 6.0 and Windows and Exchange. I also had full access to MSDN and a group of guys who were experts in MS technologies. So it’s easy, you learn what you have available. Like kids, right? They learn life by watching their parents. They learn what they have access to.
Now, that being said, I always wondered why more companies don’t make their products more available. Take Informatica for instance. I’m not really meaning to pick on them, but they’re just the ones who I’ve had dealings with most recently. The same could be said for IBM, and in some cases these days even MS. You can’t just download Informatica’s products and put them in your lab and learn how to use them. You can’t even get at the documentation unless you’re a customer. What’s that about? Seriously… you’re closing yourself off to an entire section of your market by making yourself so inaccessible. People really don’t like the closed doors in IT anymore. MS has the right idea. They’ve flooded the market with information on their products and they’re very easy to get a hold of. If my boss wants to implement something MS-related, I can easily go to any number of resources and be somewhat of an expert in as much time as it takes me. Let’s take something like Informatica though. You can’t just surf the web and find dozens of resources and read up on it, because the information simply isn’t there. Sure, you can find scatterings here and there, but try to find a book on PowerExchange on Amazon, and then try to find a book on Integration Services and see which one yields more results. The point is simply this… people learn what they have access to, and once you understand that simple rule, it just doesn’t make sense to close off your market like that. Why wouldn’t you want people being able to familiarize themselves with your products? Why wouldn’t you want people to be able to at least get extended trials of your products so they can build that skill set? The more people know about your products, the more likely they are to use them, right?
I recently pulled Hyperion out of my environment and went with SSAS. Why? It’s easy. Because there aren’t nearly as many Hyperion resources out there as there are SSAS. There aren’t nearly as many people who know Hyperion as there are who know SSAS. It’s simple math. I’m setting us up for success because should our Hyperion guy ever leave, we’ve got a much smaller talent pool to choose his replacement from. But if our SSAS guy leaves, I’ve got tons of people to choose from. And I’m not getting into a discussion on the merits of using one over the other, I’m just saying that from a resource standpoint, it’s smarter to go with SSAS. Just like it’s smarter to go with SSIS instead of Informatica. Is Informatica a better product? Well, better is a hard line to walk. It’s certainly older, so it’s more mature, but better? I guess that depends on who you ask. However, I’d go with SSIS any day of the week because of how easy it is to find resources. I can install SSIS on my desktop and play with it and run through scenarios, etc. I can just write the user group and ask any number of several dozen people for advice. I can throw a dart at Monster.com and hit someone with SSIS experience. I can go to Amazon and get books. There are user websites and 3rd party controls. Let’s face it… SSIS is everywhere, and Informatica is a closed members-only club. So what makes a better tool? Again, it all depends on how you look at it. Informatica may be a more mature tool, but nobody’s going to care if they can’t get the information they need to make it work.
MS has kinda fallen off the boat too, and I’m not sure why. See, I usually rely on my MSDN subscription for software. If there’s something I want to play around with, I just download it and put it in my lab and go to town. And there’s usually such a host of learning resources it’s pretty easy to find out what I need. But for some reason, they’ve decided not to put the new OpsMgr(formerly MOM) up for download. You can download a trial, which is better than nothing, but why not MSDN? OpsMgr is part of the new System Center suite, and the other members of SC are up on MSDN, as are the previous versions of MOM. So why not this one? Personally, I fail to see what they gain by closing off their market like that.
Oracle is excellent. You can go to Oracle.com and download anything they sell for free. No time limits, no software keys, nothing. You can download a full copy of their enterprise DB and install it in your lab and play with it till you’re blue. Of course, I’m not making any statements about their license agreement, I’m just saying what’s actually possible. I originally learned Oracle that way. And you just can’t do that with IBM. You can’t just go download Tivoli and run it in your lab (at least I don’t think you can). You have to get sales people involved, get a PO, etc. It’s all just so messy. But with Oracle you can download whatever you like and just go to town. Within the past couple years though, IBM has released a free version of DB2 that you can download, so you can now at least get some of the concepts down. They’re all doing that you know… Oracle, MS, IBM. You can get free versions of their DBs. They won’t be enterprise versions, but at least you can do something. I’m not sure if Sybase does it or not, but it shock me to hear they do.
So all you vendors out there who think you’re too good for everybody, just remember this… if you make it hard enough to learn your product people will stop caring. They’ll go with someone else, and leave you behind. And I know that most of you are doing fine now. Informatica for instance isn’t hurting, I’m sure. But how much better would they be doing if their products were easier to come by, and if there were a whole host of books and training videos, and websites, and whitepapers?
And MS… come on… put OpsMgr on MSDN already. Don’t make me come up there.

Posted by Sean McCown on May 31, 2007 06:53 PM



May 16, 2007 | Comments: (0)

The Great Canteloupe Debacle

Ok, after releasing my TechED Survival Guide the other day, I got this reply from one of my friends at MS.

Shame you’ll not be at TechEd. But at least I am spared the moment where I see you in the audience and recall exactly what you have been doing with the anti-perspirant.

To say the least, I wasn't expecting that, and I spit canteloupe all over my Treo. Good one dude.

Posted by Sean McCown on May 16, 2007 08:21 AM



May 14, 2007 | Comments: (0)

SQL Refactor is still the Bomb!

Quite a few months ago, Red-gate came out with SQLRefactor, a tool that let's you setup templates to organize your SQL code, rename objects, etc. I contacted them about getting a license so I could take a look at it, and they promptly replied. I installed it, and was up and running quickly. And within just a couple mins I had things more or less the way I wanted them and was on my way.

Let me just say, that this is probably the only tool I use on a daily basis that I'm actually grateful to have. There's nothing like seeing your code the exact same way every time, and formatting it for YOUR eyes. I personally think this tool buries Microsoft's tool (Visual Studio Team System for DBAs) for a couple reasons. First, it's a DBA tool, not a developer tool. You have to be running Visual Studio 2005 to use the MS tool, and you only need SSMS for SQLRefactor. See, I'm a DBA, not a developer, so when I go to open code, I open it in SSMS and I work with it like I'm used to working with it. I don't have to go into another program, make all new connections, get used to the way things are done there, startup a project and pick a project location, etc. I can just do what I do and have the functionality I need every day. This is something MS has forgotten I think... how to makes our lives easier. The VSTE tool is fine, and it actually does a lot more than this one, but it's a different type of tool for a different audience. And I think people lose sight of that sometimes.

The 2nd thing that makes SQLRefactor better than VSTE is the price. At $5,000 VSTE is pretty hard to get by your boss... especially for something that's not going to actually provide any extra benefit day to day. And that's one thing I've always liked about Red-Gate... they don't gouge your wallet. I can easily talk my boss into the $200 for buying this product, and like I already said, it'll be far more useful to me as a DBA because it works in SSMS.

Frankly, I have VSTE on my box as well, and I almost never use it. I just don't do that much in VS, so I don't have that great of an occasion to need it all that often.

In short, SQLRefactor is a simple tool. It has a slim list of functionality, but for what it does do, it's actually pretty rich. I use the Lay out SQL feature a lot more than I use the Split Table, but I have also found pretty good uses for Expand Wildcards. What that does is just what it sounds like. It takes a 'select *' and turns it into a column list. Very useful. I also like the Smart Rename. One time I even found myself using the Summarize Script just to make sure that my overall process was correct.

This isn't a full-blown review, and Red-Gate's not paying me, or has even asked me to write about this. I just love the product, and I wanted you guys to know about it in case you haven't heard much about it. I wouldn't exactly say it saves me tons of time every time I use it, but it does make my day just a little more pleasant by allowing me to see things the way I want.

Oh yeah, I almost forgot... another one of my favorite features is the Qualify Object Names. Just before I put something into production, I qualify all the objects in my code with it. Very handy.

There are a couple things I do wish it would do though. I really wish it would take a JOIN statement that doesn't use aliases and create them and then alias the columns. That would be really handy. I also wish it would take an SP with params and turn it into a normal script with declares and sets. That's good for troubleshooting. I also wish it would convert a @table into a #Table and vice versa. Same thing for 'select into' and 'insert into'. I have a few other requests, but let's try to talk them into those first.

Posted by Sean McCown on May 14, 2007 11:37 AM



May 11, 2007 | Comments: (0)

My TechED Survival Guide

OK, with TechED just around the corner, I thought I'd shoot you guys a little list of things you can do to make TechED a little less miserable. It's not that the conference itself is miserable, it's just being out of town for a week, and surrounded by thousands of people and having to stand for hours at a time, etc. It can really take its toll on you.

For starters, I've got a lot of friends at MS and other companies that I only get to see at these conferences, and this is the first year in several that I'm not going to be able to go. I've tried and tried, and I just can't make it. So, I'm passing along some of my conference tricks in the hopes that some of you will find them useful.

So here they are in no particular order:

1. Take an extra suitcase or bag. The guys back at your office who don't get to go, so it's always nice to bring them back something. I always take an extra swag bag so I can pass the goodies out back at the office. It not only makes you popular, but it makes the fact that they didn't get to go easier to take.

2. Ear plugs. Hotels are noisy to say the least, so take some good earplugs. I use them all the time, and they block out all the busy hotel noise like closing doors, kids running downt he hall, etc. They can make your ears a little