Problem solve Get help with specific problems with your technologies, process and projects.

Oracle disk I/O tuning: Tuning the SCSI interface in Windows

The following is part of a series on the different aspects of disk I/O performance and optimization for Oracle databases.

The following is part of a series on the different aspects of disk I/O performance and optimization for Oracle databases. Each tip is excerpted from the not-yet-released Rampant TechPress book, "Oracle disk I/O tuning," by Mike Ault. Check back to the main series page for upcoming installments.

Mike Ault

Mike Ault is one of's Oracle Internals experts. Mike is senior Oracle consultant with Burleson Consulting, and one of the leading names in Oracle technology.

To view Mike's expert responses or to ask him a question, click here.

Tuning the SCSI interface in Windows

There are two ways to change the SCSI settings for a Windows SCSI system. The first is during the install of the driver or during a reboot, usually the system will provide you with a way to get into the SCSI configuration utility when it starts up. The second is via registry edit. Registry edit is a frightening method to do anything in Windows, one wrong entry could result in your system not starting properly or in data corruption or loss. Now that I've scared you, let's discuss the registry edit method for adjusting your SCSI interface.

The items which can be tuned in Windows are located in (or added to) the registry key:

Where the "aic78xx" is replaced with the name of your controllers driver. The values that can be edited will usually have to be added as values:
  • DisableTaggedQueuing - A non-zero value disables tagged queuing for SCSI devices. Do not turn off tagged queuing! Tagged queuing improves performance in most situations. This is a REG_SZ data type. (binary)
  • DisableSynchronousTransfers - A non-zero value indicates that the SCSI host adapter is not to initiate synchronous negotiations, but can accept negotiations from a SCSI target node. This is a REG_SZ data type. (binary)
  • DisableDisconnects - A nonzero value indicates that targets are not able to disconnect during a transfer. This is data type REG_DWORD. (DWORD) MaximumLogicalUnit - This can limit the scan for connected devices on the SCSI bus. Values are 1-8. If 1 is specified then the SCSI manager assumes no LUNs greater than 0 are present. This is data type REG_DWORD. (DWORD)
  • MaximumSGList - Specifies the maximum number of Scatter/Gather elements. The valid range of values is 17-255. This one's data type is REG_DWORD. (DWORD)
These values are added by using the following procedure:
  1. Click on the Start button.
  2. Select the Run menu item.
  3. In the Run dialog box, enter the appropriate registry editor name (may be regedit32 or just regedit).
  4. Press the Enter key.
  5. Open the registry list to the appropriate location, for example:
  6. If the keys (Parameters and Device) listed above do not exist, you will have to add them by right clicking on the driver name and selecting the proper drop-down boxes. See Figure 3-1.

    Figure 3-1: Adding a Key
  7. To add a specific host adapter append Device with its indicator, device zero would be Device0. If the number is not specified the configuration information applies to all SCSI family host devices.
  8. Right click on the Device key.
  9. Select Add Value from the Edit menu. In the Value Name edit box, enter one of the valid parameter values. Make sure to enter the appropriate data type for the value and make sure you use the proper case exactly as they are specified. Repeat 8 and 9 for all additional keys. See Figure 3-2.

    Figure 3-2: Adding Values to the Device Key

    There are additional device specific parameters that can also be modified or added. These are:

    • /INSTRUMENTATION - enables recording of I/O statistics and errors. If this option is not specified, instrumentation defaults to disabled. Instrumentation is nice for trouble shooting, but does cost CPU and IO cycles, so only turn it on when needed. This is data type REG_SZ.
    • /INSTR_ERRLOG_Z=nnn - This sets the maximum number of error log entries to maintain, and defaults to 32. The valid range is 1-128. This is data type REG_SZ.
    • /MAXTAGS=nnn - This specifies the tagged queue depth. If a number is not specified the tagged queue depth defaults to 128. The valid range is 1-255. The larger the value in most cases, the more commands can be aggregated and performance is improved. The data type for this is REG_SZ. This is probably the most important parameter for performance.
    • /HOTPLUG - This enables the capability to use hot-plug PCI features. This will default to no hot-plug capability if not specified. This item has no value; it is just a tag.
    These are added to a new parameter added at the device level called DeviceParameters, which is a string value. The parameters are added as a space separated list. See Figure 3-3.

    Figure 3-3: Device DriverParameters Value

    You need to look at your adapter manual (you may have to download a copy from the device manufacturer's website) for the parameters that can be added or modified for your adapter.

    Click to buy the book, "Oracle disk I/O tuning," by Mike Ault.

    About the author

    Mike Ault is a expert and a senior Oracle consultant with Burleson Consulting, and one of the leading names in Oracle technology. The author of more than 20 Oracle books and hundreds of articles in national publications, Mike Ault has five Oracle Masters Certificates and was the first popular Oracle author with his landmark book "Oracle7 administration and management." Mike also wrote several of the "Exam Cram" books, and enjoys a reputation as a leading author and Oracle consultant. Ask Mike a question today!

Dig Deeper on Oracle database performance problems and tuning

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.