Tip

Supporting packaged SQL Server apps: What you can get away with

One of the biggest headaches “reluctant DBAs” have to deal with involves supporting SQL Server when it’s being used to maintain someone else’s application. What can you safely do without potentially breaking the app?

First, you should get really familiar with backup and recovery in SQL Server;

    Requires Free Membership to View

you can always roll back a change if you do break something. Second, document every change you attempt and try to limit your experimentation to one change at a time. That way if something does break, you’ll have to do less work to fix it.

Now, for the stuff you can always do without fear:

  • Reorganize and rebuild indexes -- Optimizing SQL Server indexes can offer a major performance advantage. Keep in mind that the application may not work correctly while a rebuild is underway, and it will definitely work more slowly.
  • Configure most database options, with the exception of the compatibility level -- In other words, you can configure autogrow and autoshrink of files, turn on auto-update of statistics, etc. -- most of which are good ideas.
  • Add memory to your server -- SQL Server loves memory, and you can never give it too much. Ditto with processors, so you should never configure processor affinity or memory limits.
  • Backup and restore the database, or even pieces of it -- This won’t break anything, and you can never have too many backups. On really critical databases, I like to grab the usual full or differential backups, but I love grabbing transaction log backups as frequently as possible since they’re fast and offer a pretty granular level of recovery.
  • Use SQL Server Profiler to capture server traffic for analysis -- Basically, using SQL Profiler like this is a passive operation, so the app won’t even know you’re doing anything.

Next, let’s discuss the things you can usually do without causing a problem. A well-written application shouldn’t mind any of these, but remember that not every application is well-written!

  • Use the Database Engine Tuning Advisor to add or drop indexes. Adding indexes usually won’t be a problem for an app, but some apps may try to refer to specific indexes by name. This means that if you drop one, it could break something.

It shouldn’t, though; the only legit reason for an application to have an index name hardcoded into it is if the app has its own maintenance routines to kick off per-index reorgs or rebuilds.

  • Split the database objects across multiple database files, thus letting you place different files on different disks for performance reasons.     

I don’t see many environments where this is necessary, because today we pretty much put files on RAID arrays. The physical layout of the database is abstracted from the logical structure, so applications won’t generally care where the files physically sit—unless, of course, the app runs its own backup routines, in which case it may be relying on particular file or filegroup names.

With most applications, you can do almost any performance tuning or maintenance tasks you want and the app won’t care. Poorly-written apps may have some dependencies on things like specific index names, in which case you might want to find the vendor and ask them what they heck they were thinking.

Miss a tip? Check out the archive page for Don's series, SQL Server for the Reluctant DBA.

ABOUT THE AUTHOR:
Don Jones is a co-founder of Concentrated Technology LLC, the author of more than 30 IT books and a speaker at technical conferences worldwide. Contact him through his website at www.ConcentratedTech.com.

This was first published in May 2010

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.