Tips 11-20
Choose the Correct Outlook 2000 Configuration
If you use Outlook 2000, when you set up your initial mail profile you have the option to set it up for Internet Only or for Corporate or Workgroup. Even though you might be setting up Outlook to connect only to an Internet Mail server, choose the Corporate or Workgroup mode. You don't have to add an Exchange Server mail account. However, your mail profile will behave differently.
In Corporate or Workgroup mode, SQL Mail will send e-mail messages immediately when they are generated, whether or not the Outlook client is running. For some reason, when configured for Internet Only mode, the mail messages go into limbo and are not sent unless the Outlook 2000 client is running, is online to the mail server, and is configured to automatically send and receive mail on a schedule (for example, every 2 minutes). You may find similar behavior using the Outlook XP mail client when it is configured with only Internet mail accounts.
Back Up Your Transaction Log Before You Do a Recovery
Any time you think you might have to do a recovery, the first thing you should do is back up the transaction log. If you skip this step and restore the database, you will have unnecessarily lost all the transactions since the last log backup.
There was a bug in SQL 7.0 that prevented the NO_TRUNCATE option from working if the primary data file for the database was damaged. Those of you who found this out the hard way will be happy to know it is fixed in SQL Server 2000.
Good Things Come to Those that Wait
After you run the sp_addumpdevice stored procedure, don't panic when you go looking for the physical files on disk and can't find them. The files aren't created until the first time you actually use the backup device.
Also, the physical pathname to the dump file is not validated until the first time you use the backup device. If a bad pathname is entered when creating the dump device, you receive an error message similar to the following when attempting to back up to it:
Server: Msg 3201, Level 16, State 1, Line 1 Cannot open backup device 'mydump'. Device error or device off-line. See the SQL Server error log for more details.
Constraints Are The Key to Integrity
Constraints are the primary method used to enforce integrity. Constraints can be created in the CREATE TABLE statement or after the table has been created using ALTER TABLE.
Create your tables first, and then use ALTER TABLE to create the constraints. This has the twofold effect of keeping your CREATE TABLE syntax simpler and providing ALTER TABLE scripts that can be rerun or modified as the need arises.
Changing Datatypes Can Affect Your Data
Changing some datatypes can result in changing the data. For example, changing from nchar to char could result in any extended characters being converted.
Similarly, changing precision and scale could result in data truncation. Other modifications (such as changing from char to int) might fail if the data doesn't match the restrictions of the new datatype. When changing datatypes, always validate that the data conforms to the new datatype.
Don't Shrink If You Don't Have To
Unless there is a definite need for the space that would be made available by shrinking a database, you shouldn't shrink the database files if the space will be used again in the future.
For one thing, having free space available in the database files avoids the overhead of having to autogrow the database files when they become full. Also, if a database file is repeatedly shrunk and expanded, the database file itself can become fragmented within the file system, which can degrade IO performance for the file.
Spread It Around
If too many outstanding I/Os are causing bottlenecks in the disk I/O subsystem, you might want to consider spreading the files across more disk drives. Performance Monitor can identify these by monitoring the PhysicalDisk object and Disk Queue Length counter. Consider spreading the files across multiple disk drives if the Disk Queue Length counter is greater than three.
Avoid Direct System Table References
Avoid writing queries that reference the system tables directly. Microsoft tries to provide backward compatibility whenever possible, but it is not guaranteed. What this means is that Microsoft reserves the right to change the names of the system tables at any time.
If you have applications that call these tables, they might not migrate to the next release. The information schema views, on the other hand, will remain consistent.
There's Good Info in the Error Logs
The SQL Server error log is a good place to look to determine the protocols that SQL Server on which listening. You can view the error logs via the Management node in Enterprise Manager, or you can open the error log file using any text editor. The latest error log file is found by default in Program Files\Microsoft SQL Server\Mssql\Log\Errorlog.
Open the error log file with a text editor and search for the word Listening in the error log text to find the relevant messages. The Server Network utility shows you what has been enabled, but there are instances when the server is unable to listen on the enabled protocol at startup.
Choosing the Best Trace Save Operation in SQL Profiler
Two distinct Save operations are available in the SQL Profiler. You can save trace events to a file or table, or you can save a trace definition in a template file. The Save As Trace Table and Save As Trace File options are for saving trace events to a file. The Save As Trace Template option saves the trace definition. Saving a trace template saves you the trouble of having to go through all the properties each time to set up the events, data columns, and filters for your favorite traces.
However, if you are executing a long-running trace, you should save to a file or table, as the trace runs to be sure that you capture the entire trace. Saving to a file allows you to clear the current contents of the trace window and not lose the trace information. Also, if you save the trace to a file or a table, you can open it later and specify whatever grouping you want to reorganize output. This flexibility gives you almost endless possibilities for analyzing the trace data.
If you are saving to a trace file as the trace runs, and the trace is expected to be large, then you can use the Enable File Rollover option, which creates a new event file when the file reaches the size that you specify. This allows you to have smaller, more manageable trace files for your review.