SAP Adaptive Server Enterprise 16.0
  Release Bulletin SAP Adaptive Server Enterprise 16.0 for HP-UX
    Product Summary
      Interoperability
      Product Compatibility
        Compatibility of Fixes with Previous SAP ASE Releases
        Password Compatibility with Replication Server
      Changes That Affect Existing Applications
        SDK for SAP ASE and PC Client
        Behavior Change for When Triggers are Fired
        Changes to Plan Sharing
        Location for Utilities and Scripts
        Changes for SAP ASE Plug-in
        Backup Server and IBM Tivoli Storage Manager
    Installation and Configuration
      Special Installation Instructions
        Release Directory Structure Change
        Installing Enterprise Connect Data Access (ECDA) or MainframeConnect DirectConnect for z/OS
      Special Configuration Instructions
        Manage Permissions of Remote Hosts That Access Backup Server
      Special Upgrade Instructions
        Cross-Platform Loading of an Encrypted Database
        Upgrade and Runtime Logging Enhancements
        Avoiding Text and Image Problems with SAP ASE
        Loading Database Dumps into Earlier Versions
      Known Installation Issues for SAP ASE
    Known Issues for SAP ASE
    Documentation Updates
      Job Scheduler Parameter job scheduler interval
      Job Scheduler Command sp_sjobdrop
      Security Built-in Function Permissions
      Shareable Temporary Tables
      Hash-Based Update Statistics
      Values for lock timeout pipe active
      dbcc page Parameter logical
      Behavior of Concurrent DDLs and reorg defrag
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Release Bulletin SAP Adaptive Server Enterprise 16.0 for IBM AIX
    Product Summary
      Interoperability
      Product Compatibility
        Compatibility of Fixes with Previous SAP ASE Releases
        Password Compatibility with Replication Server
      Changes That Affect Existing Applications
        SDK for SAP ASE and PC Client
        Behavior Change for When Triggers are Fired
        Changes to Plan Sharing
        Location for Utilities and Scripts
        Changes for SAP ASE Plug-in
        Backup Server and IBM Tivoli Storage Manager
    Installation and Configuration
      Special Installation Instructions
        Release Directory Structure Change
        Spinlock Optimization P6 Processor Requirement
        JRE Requires Additional Memory
        Installing Enterprise Connect Data Access (ECDA) or MainframeConnect DirectConnect for z/OS
      Special Configuration Instructions
        Manage Permissions of Remote Hosts That Access Backup Server
      Special Upgrade Instructions
        Cross-Platform Loading of an Encrypted Database
        Upgrade and Runtime Logging Enhancements
        Avoiding Text and Image Problems with SAP ASE
        Loading Database Dumps into Earlier Versions
      Known Installation Issues for SAP ASE
    Known Issues for SAP ASE
    Documentation Updates
      Job Scheduler Parameter job scheduler interval
      Job Scheduler Command sp_sjobdrop
      Security Built-in Function Permissions
      Shareable Temporary Tables
      Hash-Based Update Statistics
      Values for lock timeout pipe active
      dbcc page Parameter logical
      Behavior of Concurrent DDLs and reorg defrag
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Release Bulletin SAP Adaptive Server Enterprise 16.0 for Linux
    Product Summary
      Interoperability
      Product Compatibility
        Compatibility of Fixes with Previous SAP ASE Releases
        Password Compatibility with Replication Server
      Changes That Affect Existing Applications
        SDK for SAP ASE and PC Client
        Behavior Change for When Triggers are Fired
        Changes to Plan Sharing
        Location for Utilities and Scripts
        Changes for SAP ASE Plug-in
        Backup Server and IBM Tivoli Storage Manager
    Installation and Configuration
      Special Installation Instructions
        Release Directory Structure Change
        Installing Enterprise Connect Data Access (ECDA) or MainframeConnect DirectConnect for z/OS
      Special Configuration Instructions
        Manage Permissions of Remote Hosts That Access Backup Server
      Special Upgrade Instructions
        Cross-Platform Loading of an Encrypted Database
        Upgrade and Runtime Logging Enhancements
        Avoiding Text and Image Problems with SAP ASE
        Loading Database Dumps into Earlier Versions
      Known Installation Issues for SAP ASE
    Known Issues for SAP ASE
    Documentation Updates
      Job Scheduler Parameter job scheduler interval
      Job Scheduler Command sp_sjobdrop
      Security Built-in Function Permissions
      Shareable Temporary Tables
      Hash-Based Update Statistics
      Values for lock timeout pipe active
      dbcc page Parameter logical
      Behavior of Concurrent DDLs and reorg defrag
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Release Bulletin SAP Adaptive Server Enterprise 16.0 Solaris
    Product Summary
      Interoperability
      Product Compatibility
        Compatibility of Fixes with Previous SAP ASE Releases
        Password Compatibility with Replication Server
      Changes That Affect Existing Applications
        SDK for SAP ASE and PC Client
        Behavior Change for When Triggers are Fired
        Changes to Plan Sharing
        Location for Utilities and Scripts
        Changes for SAP ASE Plug-in
        Backup Server and IBM Tivoli Storage Manager
    Installation and Configuration
      Special Installation Instructions
        Release Directory Structure Change
        Installing Enterprise Connect Data Access (ECDA) or MainframeConnect DirectConnect for z/OS
      Special Configuration Instructions
        SAP ASE and Oracle Solaris Sparc JRE 7
        Manage Permissions of Remote Hosts That Access Backup Server
      Special Upgrade Instructions
        Cross-Platform Loading of an Encrypted Database
        Upgrade and Runtime Logging Enhancements
        Avoiding Text and Image Problems with SAP ASE
        Loading Database Dumps into Earlier Versions
      Known Installation Issues for SAP ASE
    Known Issues for SAP ASE
    Documentation Updates
      Job Scheduler Parameter job scheduler interval
      Job Scheduler Command sp_sjobdrop
      Security Built-in Function Permissions
      Shareable Temporary Tables
      Hash-Based Update Statistics
      Values for lock timeout pipe active
      dbcc page Parameter logical
      Behavior of Concurrent DDLs and reorg defrag
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Release Bulletin SAP Adaptive Server Enterprise 16.0 for Windows
    Product Summary
      Interoperability
      Product Compatibility
        Compatibility of Fixes with Previous SAP ASE Releases
        Password Compatibility with Replication Server
      Changes That Affect Existing Applications
        SDK for SAP ASE and PC Client
        Behavior Change for When Triggers are Fired
        Changes to Plan Sharing
        Location for Utilities and Scripts
        Changes for SAP ASE Plug-in
        Backup Server and IBM Tivoli Storage Manager
    Installation and Configuration
      Special Installation Instructions
        Release Directory Structure Change
        Installing Enterprise Connect Data Access (ECDA) or MainframeConnect DirectConnect for z/OS
      Special Configuration Instructions
        Manage Permissions of Remote Hosts That Access Backup Server
      Special Upgrade Instructions
        Cross-Platform Loading of an Encrypted Database
        Upgrade and Runtime Logging Enhancements
        Avoiding Text and Image Problems with SAP ASE
        Loading Database Dumps into Earlier Versions
      Known Installation Issues for SAP ASE
    Known Issues for SAP ASE
    Documentation Updates
      Job Scheduler Parameter job scheduler interval
      Job Scheduler Command sp_sjobdrop
      Security Built-in Function Permissions
      Shareable Temporary Tables
      Hash-Based Update Statistics
      Additional Information for Windows Failover in a High Availability System
        Configure SAP ASE for Failover on Windows
      Values for lock timeout pipe active
      dbcc page Parameter logical
      Behavior of Concurrent DDLs and reorg defrag
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Release Bulletin SAP Control Center 3.3
    Product Summary
    Installation and Upgrade
      Installation and Implementation of SAP Control Center
      Choosing an Installer
      Supported Server Versions
      Supported Product Modules and Release Documents
    Known Issues
      Known Issues for Installation, Upgrade, and Deployment
      Known Issues for SAP Control Center
      Known Issues for SAP® Adaptive Server® Enterprise
      Known Issues for Data Assurance
      Known Issues for Replication
      Known Issues for SAP Sybase Event Stream Processor
      Known Issues for SAP Sybase IQ
      Known Issues for Accessibility
    Documentation Changes
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      SAP Control Center Accessibility Information
  Installation Guide SAP Adaptive Server Enterprise 16.0 for HP-UX
    Conventions
    Installation Task Overview
      Installation Workflows
    SAP ASE Components
      SAP ASE Editions
        Determining the Edition You Have
      SAP ASE Options
      Managing SAP ASE with SAP Control Center
      Client Components and Utilities
    System Requirements
      Memory Requirements
      System Requirements for Clients
    Planning Your SAP ASE Installation
      SAP ASE Release Bulletin
      Obtaining a License
        Comparing License Deployment Models
        SySAM License Server
        Determining Host IDs
          Determining Host IDs for Machines with Multiple Network Adapters
          Using Alternate Host IDs on Windows
        Generating Licenses
          Generating License Keys at SMP
        Knowing the Product License Type
          Optional Feature Licenses
          SySAM Licensing Checkout
          Sub-capacity Licensing
      Installation Directory Contents and Layout
      Creating the Sybase User Account
      Preparing to Install SAP ASE
        Adjusting the Operating System Shared Memory Parameters
        Managing Java in the Database During Installations and Upgrades
        Multipathing
          Setting Up Multipathing
    Installing SAP ASE
      Installing SAP ASE in GUI Mode
      Installing SAP ASE in Console Mode
      Minimally Configuring an SAP ASE Server
      Installing SAP ASE Using a Response File
        Creating a Response File
        Installing in Silent Mode
        Command Line Options
      Uninstalling SAP ASE
        Removing an Existing SAP ASE Server
    Starting and Stopping SAP Control Center
    Postinstallation Tasks
      Verifying That Servers are Running
      Verifying Your Connection to the Servers
      Test the Installation and Network Connections
        Configuring libtcl.cfg for LDAP
        Adding a Server to the Directory Service
      Setting the System Administrator Password
      Installing Sample Databases
        Default Devices for Sample Databases
        Running the Database Scripts
        Installing the interpubs Database
        Installing the jpubs Database
        Maintaining Sample Databases
    SAP ASE Upgrades
      Considerations When Upgrading from SAP ASE 15.0.x or Earlier
      Considerations for Component Integration Services
      Preparing to Upgrade
      Changes in SAP ASE Directories
      Preupgrade Tasks
        Upgrade Stored Procedures
        Reserved Words
          Running a Reserved Word Check
          Addressing Reserved Words Conflicts
          Quoted Identifiers
        Preparing the Database and Devices
        The sybprocsdev device
          Increasing the Size of the sybsystemprocs Database
          Increasing Device and Database Capacity for System Procedures
      Upgrade to SAP ASE 16.0
        Upgrading Interactively Using sqlupgrade
        Upgrading Noninteractively Using sqlupgraderes
        Manually Upgrading SAP ASE
      Postupgrade Tasks
        Restoring Functionality in SAP ASE After Upgrading
        Reenabling Auditing
          Updating Threshold Procedures for Audit Segments
        Restoring Permissions
        Reenabling Replication Server After the Dataserver Upgrade
          Restoring Replication on Replicate Databases
          Restoring Replication on Primary Databases
      Migrate
        Migrating Data Using a Dump-and-Load Method
        Using bcp to Migrate Data
        Migrating Data by Replacing the Binary
      SAP ASE Components and Related Products
        Upgrading Job Scheduler
          Upgrading Job Scheduler Templates
        Upgrading High Availability and Cluster Support
        Upgrading Java in the Database
          Enabling Java in the Database in a High Availability System
        Upgrading Backup Server
        Upgrading Databases Using Dump and Load
        How Compiled Objects Are Handled When Upgrading SAP ASE
          Finding Compiled Object Errors Before Production
            Quoted Identifier Errors
            Determining Whether to Change select * in Views
    Downgrading SAP ASE
    Troubleshoot the Server
      Error Logs for Installation Utilities
      Error Logs for SAP ASE Servers
      Troubleshooting Common Installation Problems
        If the Installation Quits While You Are Configuring an SAP ASE Server
      Stopping a SAP ASE Server After a Failure
      If SAP ASE Fails the Preupgrade Eligibility Test
      When an Upgrade Fails
        If You Can Identify the Cause of the Upgrade Failure
        Restoring Databases After a Failed Upgrade
        Recovering from a Failed Upgrade
        If You Cannot Identify the Cause of an Upgrade Failure
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Installation Guide SAP Adaptive Server Enterprise 16.0 for IBM AIX
    Conventions
    Installation Task Overview
      Installation Workflows
    SAP ASE Components
      SAP ASE Editions
        Determining the Edition You Have
      SAP ASE Options
      Managing SAP ASE with SAP Control Center
      Client Components and Utilities
    System Requirements
      Making Input/Output Completion Port API Available
      Memory Requirements
      System Requirements for Clients
    Planning Your SAP ASE Installation
      SAP ASE Release Bulletin
      Obtaining a License
        Comparing License Deployment Models
        SySAM License Server
        Determining Host IDs
          Determining Host IDs for Machines with Multiple Network Adapters
          Using Alternate Host IDs on Windows
        Generating Licenses
          Generating License Keys at SMP
        Knowing the Product License Type
          Optional Feature Licenses
          SySAM Licensing Checkout
          Sub-capacity Licensing
      Installation Directory Contents and Layout
      Creating the Sybase User Account
      Preparing to Install SAP ASE
        Adjusting the Operating System Shared Memory Parameters
        Managing Java in the Database During Installations and Upgrades
        Multipathing
          Setting Up Multipathing
    Installing SAP ASE
      Installing SAP ASE in GUI Mode
      Installing SAP ASE in Console Mode
      Minimally Configuring an SAP ASE Server
      Installing SAP ASE Using a Response File
        Creating a Response File
        Installing in Silent Mode
        Command Line Options
      Uninstalling SAP ASE
        Removing an Existing SAP ASE Server
    Starting and Stopping SAP Control Center
    Postinstallation Tasks
      Verifying That Servers are Running
      Verifying Your Connection to the Servers
      Test the Installation and Network Connections
        Configuring libtcl.cfg for LDAP
        Adding a Server to the Directory Service
      The System Administrator Password
      Installing Sample Databases
        Default Devices for Sample Databases
        Running the Database Scripts
        Installing the interpubs Database
        Installing the jpubs Database
        Maintaining Sample Databases
    SAP ASE Upgrades
      Considerations When Upgrading from SAP ASE 15.0.x or Earlier
      Considerations for Component Integration Services
      Preparing to Upgrade
      Changes in SAP ASE Directories
      Preupgrade Tasks
        Upgrade Stored Procedures
        Reserved Words
          Running a Reserved Word Check
          Addressing Reserved Words Conflicts
          Quoted Identifiers
        Preparing the Database and Devices
        The sybprocsdev device
          Increasing the Size of the sybsystemprocs Database
          Increasing Device and Database Capacity for System Procedures
      Upgrade to SAP ASE 16.0
        Upgrading Interactively Using sqlupgrade
        Upgrading Noninteractively Using sqlupgraderes
        Manually Upgrading SAP ASE
      Postupgrade Tasks
        Restoring Functionality in SAP ASE After Upgrading
        Reenabling Auditing
          Updating Threshold Procedures for Audit Segments
        Restoring Permissions
        Reenabling Replication Server After the Dataserver Upgrade
          Restoring Replication on Replicate Databases
          Restoring Replication on Primary Databases
      Migrate
        Migrating Data Using a Dump-and-Load Method
        Using bcp to Migrate Data
        Migrating Data by Replacing the Binary
      SAP ASE Components and Related Products
        Upgrading Job Scheduler
          Upgrading Job Scheduler Templates
        Upgrading High Availability and Cluster Support
        Upgrading Java in the Database
          Enabling Java in the Database in a High Availability System
        Upgrading Backup Server
        Upgrading Databases Using Dump and Load
        How Compiled Objects Are Handled When Upgrading SAP ASE
          Finding Compiled Object Errors Before Production
            Quoted Identifier Errors
            Determining Whether to Change select * in Views
    Downgrading SAP ASE
    Troubleshoot the Server
      Error Logs for Installation Utilities
      Error Logs for SAP ASE Servers
      Troubleshooting Common Installation Problems
        If the Installation Quits While You Are Configuring an SAP ASE Server
      Stopping a SAP ASE Server After a Failure
      If SAP ASE Fails the Preupgrade Eligibility Test
      When an Upgrade Fails
        If You Can Identify the Cause of the Upgrade Failure
        Restoring Databases After a Failed Upgrade
        Recovering from a Failed Upgrade
        If You Cannot Identify the Cause of an Upgrade Failure
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Installation Guide SAP Adaptive Server Enterprise 16.0 for Linux
    Conventions
    Installation Task Overview
      Installation Workflows
    SAP ASE Components
      SAP ASE Editions
        Determining the Edition You Have
      SAP ASE Options
      Managing SAP ASE with SAP Control Center
      Client Components and Utilities
    System Requirements
      Memory Requirements
      System Requirements for Clients
    Planning Your SAP ASE Installation
      SAP ASE Release Bulletin
      Obtaining a License
        Comparing License Deployment Models
        SySAM License Server
        Determining Host IDs
          Determining Host IDs for Machines with Multiple Network Adapters
          Using Alternate Host IDs on Windows
        Generating Licenses
          Generating License Keys at SMP
        Knowing the Product License Type
          Optional Feature Licenses
          SySAM Licensing Checkout
          Sub-capacity Licensing
      Installation Directory Contents and Layout
      Creating the Sybase User Account
      Preparing to Install SAP ASE
        Adjusting the Operating System Shared Memory Parameters
        Managing Java in the Database During Installations and Upgrades
        Multipathing
          Setting Up Multipathing
    Installing SAP ASE
      Installing SAP ASE in GUI Mode
      Installing SAP ASE in Console Mode
      Minimally Configuring an SAP ASE Server
      Installing SAP ASE Using a Response File
        Creating a Response File
        Installing in Silent Mode
        Command Line Options
      Uninstalling SAP ASE
        Removing an Existing SAP ASE Server
    Starting and Stopping SAP Control Center
    Postinstallation Tasks
      Verifying That Servers are Running
      Verifying Your Connection to the Servers
      Test the Installation and Network Connections
        Configuring libtcl.cfg for LDAP
        Adding a Server to the Directory Service
      Setting the System Administrator Password
      Installing Sample Databases
        Default Devices for Sample Databases
        Running the Database Scripts
        Installing the interpubs Database
        Installing the jpubs Database
        Maintaining Sample Databases
      Raw Partitions on Linux
        Choosing a Raw Partition
        Examples for Creating Raw Partitions
        Administering Raw Devices
        Accessing Raw Devices from the Server
    SAP ASE Upgrades
      Considerations When Upgrading from SAP ASE 15.0.x or Earlier
      Considerations for Component Integration Services
      Preparing to Upgrade
      Changes in SAP ASE Directories
      Preupgrade Tasks
        Upgrade Stored Procedures
        Reserved Words
          Running a Reserved Word Check
          Addressing Reserved Words Conflicts
          Quoted Identifiers
        Preparing the Database and Devices
        The sybprocsdev device
          Increasing the Size of the sybsystemprocs Database
          Increasing Device and Database Capacity for System Procedures
      Upgrade to SAP ASE 16.0
        Upgrading Interactively Using sqlupgrade
        Upgrading Noninteractively Using sqlupgraderes
        Manually Upgrading SAP ASE
      Postupgrade Tasks
        Restoring Functionality in SAP ASE After Upgrading
        Reenabling Auditing
          Updating Threshold Procedures for Audit Segments
        Restoring Permissions
        Reenabling Replication Server After the Dataserver Upgrade
          Restoring Replication on Replicate Databases
          Restoring Replication on Primary Databases
      Migrate
        Migrating Data Using a Dump-and-Load Method
        Using bcp to Migrate Data
        Migrating Data by Replacing the Binary
      SAP ASE Components and Related Products
        Upgrading Job Scheduler
          Upgrading Job Scheduler Templates
        Upgrading High Availability and Cluster Support
        Upgrading Java in the Database
          Enabling Java in the Database in a High Availability System
        Upgrading Backup Server
        Upgrading Databases Using Dump and Load
        How Compiled Objects Are Handled When Upgrading SAP ASE
          Finding Compiled Object Errors Before Production
            Quoted Identifier Errors
            Determining Whether to Change select * in Views
    Downgrading SAP ASE
    Troubleshoot the Server
      Error Logs for Installation Utilities
      Error Logs for SAP ASE Servers
      Troubleshooting Common Installation Problems
        If the Installation Quits While You Are Configuring an SAP ASE Server
      Stopping a SAP ASE Server After a Failure
      If SAP ASE Fails the Preupgrade Eligibility Test
      When an Upgrade Fails
        If You Can Identify the Cause of the Upgrade Failure
        Restoring Databases After a Failed Upgrade
        Recovering from a Failed Upgrade
        If You Cannot Identify the Cause of an Upgrade Failure
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Installation Guide SAP Adaptive Server Enterprise 16.0 for Solaris
    Conventions
    Installation Task Overview
      Installation Workflows
    SAP ASE Components
      SAP ASE Editions
        Determining the Edition You Have
      SAP ASE Options
      Managing SAP ASE with SAP Control Center
      Client Components and Utilities
    System Requirements
      Memory Requirements
      System Requirements for Clients
    Planning Your SAP ASE Installation
      SAP ASE Release Bulletin
      Obtaining a License
        Comparing License Deployment Models
        SySAM License Server
        Determining Host IDs
          Determining Host IDs for Machines with Multiple Network Adapters
          Using Alternate Host IDs on Windows
        Generating Licenses
          Generating License Keys at SMP
        Knowing the Product License Type
          Optional Feature Licenses
          SySAM Licensing Checkout
          Sub-capacity Licensing
      Installation Directory Contents and Layout
      Creating the Sybase User Account
      Preparing to Install SAP ASE
        Adjusting the Operating System Shared Memory Parameters
        Managing Java in the Database During Installations and Upgrades
        Multipathing
          Setting Up Multipathing
    Installing SAP ASE
      Installing SAP ASE in GUI Mode
      Installing SAP ASE in Console Mode
      Minimally Configuring an SAP ASE Server
      Installing SAP ASE Using a Response File
        Creating a Response File
        Installing in Silent Mode
        Command Line Options
      Uninstalling SAP ASE
        Removing an Existing SAP ASE Server
    Starting and Stopping SAP Control Center
    Postinstallation Tasks
      Verifying That Servers are Running
      Verifying Your Connection to the Servers
      Test the Installation and Network Connections
        Configuring libtcl.cfg for LDAP
        Adding a Server to the Directory Service
      Setting the System Administrator Password
      Installing Sample Databases
        Default Devices for Sample Databases
        Running the Database Scripts
        Installing the interpubs Database
        Installing the jpubs Database
        Maintaining Sample Databases
    SAP ASE Upgrades
      Considerations When Upgrading from SAP ASE 15.0.x or Earlier
      Considerations for Component Integration Services
      Preparing to Upgrade
      Changes in SAP ASE Directories
      Preupgrade Tasks
        Upgrade Stored Procedures
        Reserved Words
          Running a Reserved Word Check
          Addressing Reserved Words Conflicts
          Quoted Identifiers
        Preparing the Database and Devices
        The sybprocsdev device
          Increasing the Size of the sybsystemprocs Database
          Increasing Device and Database Capacity for System Procedures
      Upgrade to SAP ASE 16.0
        Upgrading Interactively Using sqlupgrade
        Upgrading Noninteractively Using sqlupgraderes
        Manually Upgrading SAP ASE
      Postupgrade Tasks
        Restoring Functionality in SAP ASE After Upgrading
        Reenabling Auditing
          Updating Threshold Procedures for Audit Segments
        Restoring Permissions
        Reenabling Replication Server After the Dataserver Upgrade
          Restoring Replication on Replicate Databases
          Restoring Replication on Primary Databases
      Migrate
        Migrating Data Using a Dump-and-Load Method
        Using bcp to Migrate Data
        Migrating Data by Replacing the Binary
      SAP ASE Components and Related Products
        Upgrading Job Scheduler
          Upgrading Job Scheduler Templates
        Upgrading High Availability and Cluster Support
        Upgrading Java in the Database
          Enabling Java in the Database in a High Availability System
        Upgrading Backup Server
        Upgrading Databases Using Dump and Load
        How Compiled Objects Are Handled When Upgrading SAP ASE
          Finding Compiled Object Errors Before Production
            Quoted Identifier Errors
            Determining Whether to Change select * in Views
    Downgrading SAP ASE
    Troubleshoot the Server
      Error Logs for Installation Utilities
      Error Logs for SAP ASE Servers
      Troubleshooting Common Installation Problems
        If the Installation Quits While You Are Configuring an SAP ASE Server
      Stopping a SAP ASE Server After a Failure
      If SAP ASE Fails the Preupgrade Eligibility Test
      When an Upgrade Fails
        If You Can Identify the Cause of the Upgrade Failure
        Restoring Databases After a Failed Upgrade
        Recovering from a Failed Upgrade
        If You Cannot Identify the Cause of an Upgrade Failure
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Installation Guide SAP Adaptive Server Enterprise 16.0 for Windows
    Conventions
    Installation Task Overview
      Installation Workflows
    SAP ASE Components
      SAP ASE Editions
        Determining the Edition You Have
      SAP ASE Options
      Managing SAP ASE with SAP Control Center
      Client Components and Utilities
    System Requirements
      System Requirements for Clients
    Planning Your SAP ASE Installation
      SAP ASE Release Bulletin
      Obtaining a License
        Comparing License Deployment Models
        SySAM License Server
        Determining Host IDs
          Determining Host IDs for Machines with Multiple Network Adapters
          Using Alternate Host IDs on Windows
        Generating Licenses
          Generating License Keys at SMP
        Knowing the Product License Type
          Optional Feature Licenses
          SySAM Licensing Checkout
          Sub-capacity Licensing
      Installation Directory Contents and Layout
      Preparing to Install SAP ASE
        Managing Java in the Database During Installations and Upgrades
    Installing SAP ASE
      Installing SAP ASE in GUI Mode
      Installing SAP ASE in Console Mode
      Minimally Configuring an SAP ASE Server
      Installing SAP ASE Using a Response File
        Creating a Response File
        Installing in Silent Mode
        Command Line Options
      Uninstalling SAP ASE
        Removing an Existing SAP ASE Server
    Starting and Stopping SAP Control Center
    Postinstallation Tasks
      Set Up sybase User in Windows
      Verifying That Servers are Running
      Verifying Your Connection to the Servers
      Test the Installation and Network Connections
        Configuring libtcl.cfg for LDAP
        Adding a Server to the Directory Service
        Adding a Server to the Interfaces File
      Setting the System Administrator Password
      Installing Sample Databases
        Default Devices for Sample Databases
        Running the Database Scripts
        Installing the interpubs Database
        Installing the jpubs Database
        Maintaining Sample Databases
    SAP ASE Upgrades
      Considerations When Upgrading from SAP ASE 15.0.x or Earlier
      Considerations for Component Integration Services
      Preparing to Upgrade
      Changes in SAP ASE Directories
      Preupgrade Tasks
        Upgrade Stored Procedures
        Reserved Words
          Running a Reserved Word Check
          Addressing Reserved Words Conflicts
          Quoted Identifiers
        Preparing the Database and Devices
        The sybprocsdev device
          Increasing the Size of the sybsystemprocs Database
          Increasing Device and Database Capacity for System Procedures
      Upgrade to SAP ASE 16.0
        Upgrading SAP ASE on Windows
        Testing the SAP ASE Upgrade
        Manually Upgrading SAP ASE
      Postupgrade Tasks
        Restoring Functionality in SAP ASE After Upgrading
        Reenabling Auditing
          Updating Threshold Procedures for Audit Segments
        Restoring Permissions
        Reenabling Replication Server After the Dataserver Upgrade
          Restoring Replication on Replicate Databases
          Restoring Replication on Primary Databases
      Migrate
        Migrating Data Using a Dump-and-Load Method
        Using bcp to Migrate Data
      SAP ASE Components and Related Products
        Upgrading Job Scheduler
          Upgrading Job Scheduler Templates
        Upgrading High Availability and Cluster Support
        Upgrading Java in the Database
          Enabling Java in the Database in a High Availability System
        Upgrading Backup Server
        Upgrading Databases Using Dump and Load
        How Compiled Objects Are Handled When Upgrading SAP ASE
          Finding Compiled Object Errors Before Production
            Quoted Identifier Errors
            Determining Whether to Change select * in Views
    Downgrading SAP ASE
    Troubleshoot the Server
      Error Logs for Installation Utilities
      Error Logs for SAP ASE Servers
      Troubleshooting Common Installation Problems
        If the Installation Quits While You Are Configuring an SAP ASE Server
      Stopping a SAP ASE Server After a Failure
      If SAP ASE Fails the Preupgrade Eligibility Test
      When an Upgrade Fails
        If You Can Identify the Cause of the Upgrade Failure
        Restoring Databases After a Failed Upgrade
        Recovering from a Failed Upgrade
        If You Cannot Identify the Cause of an Upgrade Failure
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  Installation Guide SAP Control Center 3.3
    About SAP Control Center
    Installation Task Flows for SAP Control Center
    Planning Your Installation
      Obtaining a License
      System Requirements
      SAP Control Center Network Ports
      Installation Considerations
      Preparing to Roll Back from an Upgrade
    Preinstallation Tasks
    Installing SAP Control Center
      Installing with the SAP Installer
      Installing with a Response File
        Creating a Response File
        Installing in Unattended (Silent) Mode
      Uninstalling
    Upgrading SAP Control Center
      Upgrading a Singleton SAP Control Center
      Upgrading Shared-Disk Instances
    Installing JDBC Drivers for Third-Party Replicate Databases
    Starting and Stopping SAP Control Center
      Registering the ODBC Driver in Windows
      Starting and Stopping SAP Control Center in Windows
      Starting and Stopping SAP Control Center in UNIX
    Getting Started After Installing
      Configuring the SSL Certificate
      Setting Passwords or Disabling Default Login Accounts
        Encrypting a Password
      Enabling Incremental Backups
      Configuring SAP Control Center
    Troubleshooting Installation
  Configuration Guide for UNIX Adaptive Server Enterprise 16.0
    About SAP ASE
      System-Specific Issues
      System User Roles
      Environment Variables
    SAP ASE Devices and System Databases
      The master Device
      The sybsystemdb Device
      The sysprocsdev Device
      Optional Devices and Databases
        Pluggable Component Interface (PCI) Database
        Sample Databases
        sybsecurity Device and Database
        dbccdb Database
        sybmgmtdb Database
      Using Operating System Files as Database Devices
        The directio Parameter
        The dsync Parameter
      Determine the Size of a Database Device
        Support for Raw Partitions or Files
        Preparation of a Raw Partition Device
          Choosing a Raw Partition
    Client/Server Communication
    About Changing SAP ASE Configuration
    Languages Other Than US English
    SAP ASE Specifications
      Database Specifications
      Table Specifications
      Procedure Specifications
      Query Specifications
      Maximum Column Sizes
      Database Requirements for Varying Page Sizes
      Data Limits for Tables According to Page Size
    Start and Stop Servers
      Start Servers
        Server Start-up Parameters
        RUN_server_name File
        Using the startserver Command
      Start Servers When the Operating System Restarts
        Creating a System Restart Script for HP-UX
        Creating a System Restart Script for IBM RS/6000
        Creating a System Restart Script for Sun Solaris and Linux
      Starting XP Server After Initial Installation
      Stop Servers
        Stopping SAP ASE
        Stopping Backup Server
        Using the kill Command
        Shutdown and Shared Memory Files
    Huge Pages on Linux
    Configure the Operating System
      Verifying Environment Variables
      Using the stty Setting
      Restore Correct Permissions
      File Descriptors and User Connections
        File Descriptors and User Connections for HP-UX
        File Descriptors and User Connections for AIX
        File Descriptors and User Connections for Linux
        File Descriptors and User Connections for Sun Solaris
        Displaying Current Soft and Hard Limits
        Increasing the Soft Limit
        Increasing the Hard Limit
      Enable Asynchronous Disk I/O
        Enabling Asynchronous Disk I/O on Linux
        Enabling Asynchronous Disk I/O on IBM AIX
        Enabling Asynchronous Disk I/O HP-UX
        Enabling Asynchronous I/O for File System Devices
        Enabling Asynchronous I/O for File Systems
      Adjust the Client Connection Timeout Period
        Adjusting the Client Connection Timeout for HP-UX
        Adjusting the Client Connection Timeout for IBM RS/6000
        Adjusting the Client Connection Timeout for Linux
      Check for Hardware Errors
      Monitor the Use of Operating System Resources
        Monitor Operating System Resources for HP-UX
        Monitor Operating System Resources for IBM RS/6000
        Monitor Operating System Resources for Sun Solaris and Linux
      Check Database Integrity
    Configuring New Servers with srvbuild
    Optimize the SAP ASE Configuration
    SAP ASE Default Configuration
      Default Settings
    Set Up Communications Across the Network
      How SAP ASE Determines Which Directory Service Entry to Use
      How a Client Uses Directory Services
      Create a Directory Services Entry
      Supported Directory Drivers
      Contents of the interfaces File
      interfaces File Format
        Components of an interfaces File Entry
      Create a Master interfaces File
        Using dsedit or dscp to Create a Master interfaces File
        Using a Text Editor to Create a Master interfaces File
      Configure the interfaces File for Multiple Networks
        Configuring the Server for Multiple Network Handlers
        Configure Client Connections
          Manage One Network-Independent DSQUERY Name
          Using Different DSQUERY Names
        Configuring for Query Port Backup
      IPv6 Support
        IPv6 Infrastructure
    Troubleshoot
      Troubleshooting when the Server Fails to Start
      Troubleshooting an Error when Executing an ESP
    Use the Lightweight Directory Access Protocol as a Directory Service
      LDAP Directory Services Versus the SAP Interfaces File
      The libtcl*.cfg File
      Enabling LDAP Directory Services
      Keywords for the LDAP URL Variables
      Adding a Server to the Directory Services
      Multiple Directory Services
      Encrypting the Password
      Performance
      Migrating from the interfaces File to LDAP
    Localization Support
      Language Modules
      Default Character Sets
      Supported Character Sets
        Arabic Character Sets
        Baltic Character Set
        Simplified Chinese Character Sets
        Traditional Chinese Character Set
        Cyrillic Character Sets
        Eastern European Character Sets
        Greek Character Sets
        Hebrew Character Sets
        Japanese Character Sets
        Korean Character Set
        Thai Character Sets
        Turkish Character Sets
        Unicode Character Set
        Vietnamese Character Set
        Western European Character Sets
      Character Set Names
      Load Character Sets
      Language Definition Files Sort Order
      Character Set Conversion
        Conversions Between Server and Client
      Sort Orders
        Available Sort Orders for Character Sets
      Language Modules
        Installing a New Language Module
        Message Languages
      Localization Directories
        About the locales Directory
        About the charsets Directory
        Format of locales.dat File Entries
        How Client Applications Use locales.dat
      Changing SAP ASE Localization Configuration
        Configuring SAP ASE for Other Character Sets
        Editing the locales.dat File
        Changing Backup Server Localization Configuration
    SAP ASE Error Logging
      Set Error Log Paths
        Set the SAP ASE Error Log Path
      Manage Messages
        Log User-Defined Messages
        Log Auditing Events
    Manage Database Devices
      Device Requirements
      Create Files for Database Devices
    Database Management System Auditing
      Audit System Devices and Databases
    Install Online Help for Transact-SQL Syntax
      Default Device for the sybsyntax Database
      Installing sybsyntax
  Configuration Guide for Windows Adaptive Server Enterprise 16.0
    About SAP ASE
      System-Specific Issues
      User Roles
      Environment Variables
    SAP ASE Devices and System Databases
      The master Device
      The sybsystemdb Device
      The sysprocsdev Device
      Optional Devices and Databases
        Pluggable Component Interface (PCI) Database
        Sample Databases
        sybsecurity Device and Database
        dbccdb Database
      Using Operating System Files as Database Devices
        The dsync Parameter
        The directio Parameter
    Client/Server Communication
    About Changing SAP ASE Configurations
    Languages Other Than US English
    SAP ASE Specifications
      Database Specifications
      Table Specifications
      Query Specifications
      Procedure Specifications
      Extended-Limit Capabilities
    Start and Stop Servers
      Server Start-up Parameters
        Specifying Additional Start-up Parameters
      Starting and Stopping Servers Using Unified Agent
      Start and Stop Servers Using the Control Panel
        Starting Servers as an Automatic Service
          Setting Up SAP ASE as an Automatic Service
        Starting, Stopping, and Pausing Servers Manually
      Stopping Backup Server
      Stopping SAP ASE
    Monitor Servers
      Monitoring Servers with the Control Panel
    SAP ASE Configurations
      Default SAP ASE Configuration
        Default SAP ASE Parameter Settings
        Default Backup and XP Server Settings
      Change SAP ASE Configurations
        Starting Server Config
        Configuring SAP ASE
          Setting SAP ASE Parameters
          Changing the Default Backup Server
          Changing the Default XP Server
        Configuring Backup Server
        Configuring Job Scheduler and Self Management
        Optimize the SAP ASE Configuration
    Network Communications Using sql.ini
      Client Connections to SAP ASE
      Determine the Address to Listen for Client Connections
      Client Access to SAP ASE
        Enabling Client Access to a Server
        Changing the Server Entries in sql.ini
      Components in the sql.ini File
        Server Name
        Network Driver
        Service Type
        Server Address
          Address Format
          IP Address
          Named Pipes Format
          Windows Sockets Format
            Increasing Windows Sockets Connections
              Modifying an Existing TcpNumConnections Value
              Adding a TcpNumConnections Value
            Using Multiple TCP/IP Network Interface Cards
            Controlling the Connection Timeout
              Increasing the TcpKeepTries Value
          NWLink IPX/SPX Format
            Available NWLink IPX/SPX Connection Formats
            Selecting Valid Connection Formats
      Share Network Configuration Information
        Creating a Master sql.ini File
        Windows Registry as a Directory Service
          Using Windows Registry as a Directory Service
      Verify Server Connections
      Configure ODBC Connections
        Configuring the ODBC Driver
      IPv6 Support
        IPv6 Infrastructure
    Lightweight Directory Access Protocol in SAP ASE
      LDAP Directory Services versus the SAP Interfaces File
      The libtcl.cfg File
      Enabling LDAP Directory Services
      Adding a Server to the Directory Services
        Adding a Server Entry to the Directory Service Using dsedit
      Multiple Directory Services
      Encrypting the Password
      Performance with LDAP
      Migrating from the sql.ini File to LDAP
    Localization Support
      Language Modules
      Default Character Sets for Servers
        Changing the Default Character Set for Servers
      Supported Character Sets
        Arabic Character Sets
        Baltic Character Set
        Simplified Chinese Character Sets
        Traditional Chinese Character Set
        Cyrillic Character Sets
        Eastern European Character Sets
        Greek Character Sets
        Hebrew Character Sets
        Japanese Character Sets
        Korean Character Set
        Thai Character Sets
        Turkish Character Sets
        Unicode Character Set
        Vietnamese Character Set
        Western European Character Sets
      Character Set Conversion
        Conversions Between Server and Client
      Sort Orders
        Available Sort Orders
      Language Modules
        Installing a New Language Module
        Message Languages
      Localization
        Localization Directories
        charsets and locales Directories
          Format of locales.dat File Entries
          Client Application Use of locales.dat
          Editing the locales.dat File
      Changing SAP ASE and Backup Server Localization Configuration
        Completing SAP ASE Localization Changes
        Completing Backup Server Localization Changes
        Configuring SAP ASE for Other Character Sets
      Language-Specific Sort Orders
      SAP ASE Character Set Names
      charset Utility
    Log Error Messages and Events
      SAP ASE Error Logging
      Windows Event Logging
        Setting Up Windows Event Logging
        Enable and Disable Windows Event Logging
          Enabling or Disabling Event Logging Using Server Config Utility
          Enabling or Disabling Event Logging Using sp_configure
        Windows Event Log Information
      Manage Logs
      Set Error Log Paths
        Setting the SAP ASE Error Log Path
        Setting the Backup Server Error Log Path
      Manage Messages
        Log User-Defined Messages
          New Messages
          Existing Messages
        Log Auditing Events
        Log User-Defined Events
      Using a Remote Log
      Central Logging Site
        Log Messages from Multiple SAP ASEs
        Set Up a Local Central Logging Site
          Creating a Registry key
          Defining a Registry Key
      View Messages
        Viewing Messages in the Windows Event Log
        Viewing Messages in the SAP ASE Error Log
    Security Services with Windows LAN Manager
      How Login Authentication Works
      Administering Security Services Using LAN Manager
      Modify Configuration Files Required for a Unified Login
        Set Up Drivers for Network-Based Security
          Entries for Network Drivers
          Entries for Directory Services
          Entries for Security Drivers
            Editing the libtcl.cfg File
        Checking the LAN Manager's Local Name
        Specifying Security Information for SAP ASE
      Identify Users and Servers to LAN Manager
      Configure SAP ASE for LAN Manager Security
        Enabling and Disabling External Security Services
        Manage Unified Login
          Requiring Unified Login
          Establishing a Secure Default Login
          Map LAN Manager Login Names to Server Names
        Data Integrity Check
        Ensure Adequate Memory for Security Services
      Add Logins to Support Unified Login
        Adding Logins
      Define the Connection to a Server for Security Services
        Specifying the Principal Name
        Specifying Network-Based User Authentication
        Specifying the Name Assigned to LAN Manager
      Determining the Status of Security Services
      Configuration Parameters Used in Security Services
        Data Integrity Check
        Message Sequence Check
        Detect Interception or Replay
        Specify a Login
        Control User Authentication
      Manage Login Security on an Windows Computer
        SAP ASE Security
        Combined SAP ASE and Windows Login Security
          Trusted Connections and Combined Login Security
        Login Security Modes
          Standard Mode
          Integrated Mode
          Mixed Mode
        Manage the Login Security Features
          Permit Trusted Connections
          Windows Registry Parameters
            Default Login
            Default Domain
            SetHostName
            Character Mappings
            Modify the Parameter Values
        Administer Login Security Using System Procedures
          Assigning Trusted Connection Permissions
          Display the Current Registry Values
          Display Permissions and User Names
          Revoke Permissions Granted with sp_grantlogin
        Configuring Login Security
          Creating Windows Users and Groups
          Configuring Mapping and Default Domain Values
          Setting Login Security Mode
          Adding Network Login Names to syslogins
          Assigning Roles
        Change Login Security Options
          Enabling Standard Login Security Mode
          Enabling Integrated or Mixed Login Security Mode
    Manage SAP ASE Databases
      Manage Database Devices
        Device Requirements
        Creating .dat Files for Database Devices
      Back Up and Restore Data
        Backing Up Data with a Tape Drive
          Windows Tape Drive Names
          Set the Maximum Capacity for a Tape Drive
        Backing Up Data Using a Hard Disk
        Dumping Across a Network
        Examples of Backing Up and Restoring User Databases
          Back Up and Restore to a Database and Device
          Back Up and Restore on a Remote Backup Server
          Backup File Names
          Additional Dump Devices
          Tape Handling Options
          Get Information About Files
        Backing Up and Restoring System Databases
      Optimize SAP ASE Performance and Tuning
        Using Dedicated SAP ASE Operation
        Disk Drives and SAP ASE Performance
          Monitor Disk Usage
      Monitoring SAP ASE Statistics
    Database Management System Auditing
      Audit System Devices and Databases
    Install Online Help for Transact-SQL Syntax
      Default Device for the sybsyntax Database
      Installing sybsyntax
    Troubleshoot Network Connections
      Running Server Ping
      Troubleshoot Connection Failures
        Using Returned Messages to Diagnose a Failure
          Troubleshooting a Connection Failure to SAP ASE
          Failure to Load Net-Library DLLs
        Troubleshooting Failure of Other Applications
          Before Calling Technical Support
    SAP ASE Registry Keys
      \SOFTWARE\SYBASE\Server\server_name
      \SOFTWARE\SYBASE\SQLServer\server_name\parameter
      \SOFTWARE\SYBASE\SQLServer
      \SYSTEM\CurrentControlSet\Services\SYBSQL_server_name
  New Features Summary SAP Adaptive Server Enterprise 16.0
    Version 16.0
      Increased Data Availability with Partition Locking
      CIS Support for HANA Server
      Relaxed Query Limits
      Query Plan Optimization with Star Joins
      Query Performance Improvements
      Full-Text Auditing
      Auditing for Authorization Checks Inside Stored Procedures
      Replacing Object Definitions
      Query Plan and Execution Statistics in HTML
      Index Compression
      SAP JVM Support
      Full Database Encryption
      Scalability Enhancements and Features
      Monitoring Threshold-Based Events
      Multiple Triggers
      Residual Data Removal
      Configuration History Tracking
      Cyclic Redundancy Checks for dump database
      Calculating the Transaction Log Growth Rate
      System Changes for SAP ASE Version 16.0
    Version 15.7 SP100
      Adaptive Server 15.7 SP100 Feature and Platform Matrix
      Shrinking Databases
      Enhancements to Backup and Restore
      Aggregating Metrics from Syntactically Similar Queries
      Updates to Precomputed Result Sets
      Improved Data Load Performance
      Incremental Reorganization
      Creating Indexes Without Blocking Access to Data
      Query Plan and Execution Statistics in HTML
      Gathering Hash-Based Statistics with create index
      Query Plan Optimization with Bloom Filters
      Support for Replication by Column Value
      Support for Multiple Scanner Threads
      Sybase Central Adaptive Server Plug-in
      Running Adaptive Server on VMware vSphere
      Support for OData
      Support for NTLM and MIT Kerberos on Windows 64-bit
      Properties Added to Responses File
      Automatic Physical Database Rearrangement
      System Changes for Adaptive Server Version 15.7 SP100
        Commands
        Functions
        System Stored Procedures
        Configuration Parameters
        System Tables
        Utilities
        Monitoring Table Changes
        Permission Changes for Commands and Functions
    Version 15.7 ESD #4
      15.7 ESD #4.2
        Improved Rollback Reporting
      15.7 ESD #4
        Remote Backup Server Maximum Name Length
        Support for Query Plan Pinning
        AF_UNIX Support
        Changes to sp_addthreshold and Roles
        System Changes for Adaptive Server Version 15.7 ESD #4
          Utilities
          Configuration Parameters
    Version 15.7 ESD #3
      sybrestore Utility
      System Changes for Adaptive Server Version 15.7 ESD #3
        Commands
        Functions
        System Stored Procedures
        Monitoring Table Changes
    Version 15.7 ESD #2
      Granular Permissions
      Predicated Privileges
      Deferred Table Creation
      Online Utilities
      Merging and Splitting Partitions
      Maximum Size of Query in the Statement Cache
      Enhancements to show_cached_plan_in_xml
      Fast-Logged Bulk Copy
      Precomputed Result Sets
      Concurrent dump database and dump transaction Commands
      Hash-Based Update Statistics
      Enhancements to dump and load
      alter table drop column without datacopy
      Expanded Maximum Database Size
      User-Defined Optimization Goal
      Shared Query Plans
      Initializing Databases Asynchronously
      In-Row Large Object Compression
      Configuring Shared Memory Dumps
      System Changes for Adaptive Server Version 15.7 ESD #2
        Commands
        Functions
        System Stored Procedures
        Configuration Parameters
        System Tables
        Utilities
        Monitoring Table Changes
    Version 15.7 ESD #1
      Proxy Table Support for In-row LOB Columns
      Support for System Procedures in Replicated Master Database
      Increased Number of Parameters
      Multiple Listeners on Windows
      Windows Supports Adaptive Server High Availability
      New and Changed Configuration Parameters
    Version 15.7
      Application Functionality Configuration Group
      New Adaptive Server Kernel
      Compressing Data in Adaptive Server
      New Security Features
        End-to-End CIS Kerberos Authentication
        Dual Control of Encryption Keys and Unattended Startup
        Securing Logins, Roles, and Password Management Extensions
        Login Profiles
        Employee Lifecycle Management
        External Passwords and Hidden Text
      Abstract Plans in Cached Statements
      Shrink Log Space
      Displaying Currently Set Switches with sysoptions
      Changes for Large Objects
        In-Row Off-Row LOB
        Using Large Object text, unitext, and image Datatypes in Stored Procedures
        Using LOB Locators in Transact-SQL Statements
        Extension to where Clause for Large Objects
      Showing Cached Plans in XML
      Padding a Character Field Using str
      Changes to select for update
      Creating Nonmaterialized, Non-null Columns
      Sharing Inline Defaults
      Retain Monitoring Data
      Analyze Dynamic Parameters
      Monitor Lock Timeouts
      Truncate Trailing Zeros
      Fully Recoverable DDL
      Transfer Rows from Source to Target Table Using merge
      View Statistics and Histograms with sp_showoptstats
      Changes to Cursors
        Release Cursor Locks at Cursor Close
        Enhanced Transaction Support for Cursors
        Monitor Cursor Statements
      Nested select Statement Enhancements
      Changes to Commands and System Procedures in Chained Transaction
      Expanded Variable-Length Rows
      Changes to like Pattern Matching
      Changes to Quoted Identifiers
      Allowing Unicode Noncharacters
      Reduce Query Processing Latency
      The sybdiag Utility
      The Optimizer Diagnostic Utility
      System Changes for Adaptive Server Version 15.7
        Commands
        Functions
        System Stored Procedures
        Configuration Parameters
        System Tables
        Utilities
        Monitoring Table Changes
          New Monitoring Tables
          Changes to Monitoring Tables
        Global Variables
    Version 15.5 Cluster Edition
      Adaptive Server 15.5 Cluster Edition Feature and Platform Matrix
      Multiple simultaneous failover
      Adding space to an archive database
      Distributed transaction management in the shared-disk cluster
      System Changes for Adaptive Server Version 15.5 Cluster Edition
        Changed commands
        Monitoring Tables
        Configuration Parameters
        Functions
    Version 15.5
      Adaptive Server 15.5 Feature and Platform Matrix
      In-Memory and Relaxed-Durability Databases
      Faster Compression for Backups
      Backup Server Support for the IBM® Tivoli® Storage Manager
      Deferred Name Resolution for User-Defined Stored Procedures
      FIPS 140-2 Login Password Encryption
      Incremental Data Transfer
      bigdatetime and bigtime Datatypes
      Creating and Managing tempdb Groups
      System Changes for Adaptive Server Version 15.5
        Datatypes
        Functions
        System Stored Procedures
        Commands
        Configuration Parameters
        Monitoring Tables
        System Tables
        Utilities
        Auditing
    Version 15.0.3
      SQL Statement Replication
      Security Enhancements
        LDAPS User Authentication Enhancement
        Automatic LDAP User Authentication and Failback
        Login Mapping of External Authentication
        Using SSL to Specify a Common Name
        Concurrent Kerberos Authentication
      Virtually Hashed Tables
      Huge Pages
      Upgrading During a High Availability Configuration
        Reinstalling System Stored Procedures
      Distributed Transaction Management (DTM)
      Adaptive Server Plug-in Updates
      The Java Interface
      System Changes for Adaptive Server Version 15.0.3
        Functions
        System Stored Procedures
        Commands
        Configuration Parameters
        Monitoring Tables
        System Tables
    Version 15.0.2
      Encrypted Columns
      Archive Database Access
      Finding Slow-Running Queries
      Deferred Compilation
      Case-Insensitive Sort Orders for Chinese and Japanese Character Sets
      Statistical Aggregate Functions
        Standard Deviation and Variance
      Eager and Lazy Aggregation
        Vector and Scalar Aggregation
      Improved Performance for Data Insertion
        Using Asynchronous Writes During a Page Split
        Improving Throughput of tempdb Transactions
        Post-commit Optimization
      Changes to the Query Processor
        Deferred Compilation
        Non-binary Character Set Histogram Interpolation
        Expression Histogramming Selectivity Estimates
      Viewing Current Optimizer Settings
      New Security Features
        PAM Support in 64-bit Adaptive Server on AIX
        Global Login Triggers Set Automatically
        SSL Support
        Improved Password Security
        Auditing Enhancements
          Hiding System Stored Procedure and Command Password Parameters
          Monitoring Failed Login Attempts
        High Availability Considerations
      Installing and Editing Monitoring Tables
      Monitoring Tables for the Statement Cache
      Row-Level Locking for System Tables
      The xmltable() Function
      Relocated Joins
      User-Defined SQL Functions
      instead of Triggers
      System Changes for Adaptive Server Version 15.0.2
        Trace Flags
        Commands
        Changes to the set Command
        Utilities
        System Stored Procedures
        System Tables
        Configuration Parameters
        Functions
        Global Variables
    Version 15.0.1
      Changes to Abstract Plans
        New Query-Level Settings
        Operator Name Alignment for the Abstract Plan and the Optimizer Criteria
        Extending the Optimizer Criteria Set Syntax
      Literal Parameterization
      System Changes for Adaptive Server Version 15.0.1
        Functions
        Configuration Parameters
        Commands
        Monitoring Tables
    Version 15.0
      Partition Support
      Row-Locked System Catalogs
      Query Processor
      Large Identifiers
      Computed Columns
        Differences Between Computed Columns and Function-Based Indexes
        Differences Between Materialized and Not Materialized Computed Columns
      Scrollable Cursors
      unitext Datatype Support
      big int Datatype Support
      Unsigned Integer Datatype Support
      Integer Identity
      Enhancements to XML Services
      Adaptive Server Plug-in Enhancements
      Interactive SQL
      User-Defined Web Services
      Very Large Storage Support
      Automatic Running of update statistics
      SySAM License Management
      Query Processing Metrics (qp Metrics)
      Updates to Abstract Plans
      showplan Changes
      Secure Socket Layer Uses FIPS 140-2
      System Changes for Adaptive Server Version 15.0
        Utilities
        Reserved Words
        Global Variables
        Configuration Parameters
        Functions
        Commands
        System Stored Procedures
        System Tables
        Monitoring Tables
    Obtaining Help and Additional Information
      Technical Support
      Downloading Product Updates
      Product and Component Certifications
      Accessibility Features
  New Features Guide SAP Adaptive Server Enterprise 16.0
    Overview of Version 16.0
    Increased Data Availability with Partition Locking
      Partition Locks
        Partition Lock Name
        Enabling Partition Locking
        View Partition Locks with sp_lock
        View Partition Locks with sp_familylock
        View Partition Locks with monLocks and monDeadLock
        Deadlocks and Lock Timeouts
      Partition Lock Promotion
        Setting Partition Lock Promotion Thresholds
        Dropping Partition Lock Promotion Thresholds
      Lock Compatibility and Lock Sufficiency
        Partition Lock Compatibility
        Partition Lock Sufficiency
        Schema Lock Compatibility
        Schema Lock Sufficiency
      Improved Concurrency for Partition-Level Online Operations
        Partition-Level Online Operation Syntax
        Concurrency with Partition-Level Online Operations
        Partition-Level Online Operations with Global Index
        Schema Locks
    Component Integration Services Support for HANA Server
      Configuring CIS for HANA
        Creating SAP HANA as an ODBC Data Source on Windows
        Adding SAP HANA to the SAP ASE Interfaces File
        Configuring the PCI Bridge and PCA/ODBC
      Adding Server Class HANAODBC
      Datatype Mapping Between SAP ASE and HANA
      Restrictions
    Relaxed Query Limits
    Query Plan Optimization with Star Joins
      Star Join Hint
      Star Join Query Plans Under the use fact_table Hint
    Query Performance Improvements
      Dynamic Thread Assignment
      SORT Operator Performance Improvement
      Hash Join Operator Performance Improvement
    Full-Text Auditing
    Auditing for Authorization Checks Inside Stored Procedures
    Replacing Object Definitions
      Install Script Changes
      Data and Log Segment Changes
    Query Plan and Execution Statistics in HTML
      Option for Prefix of Generated File
    Index Compression
      Enabling Index Compression
      Creating an Index Compressed Table
      Creating a Compressed Index
      Changing the Compression State
    SAP JVM Support
    Full Database Encryption
      Full Database Encryption Versus Encrypted Columns
      Creating the Database Encryption Key
        Changing a Database Encryption Key
        Dropping a Database Encryption Key
      Create an Encrypted Database
      Encrypt an Existing Database
      Encryption Status and Progress
      Performance Considerations
      Suspend the Encryption Process
        The quiesce database Command and Fully Encrypted Databases
      Resume the Encryption Process
      Decrypt an Encrypted Database
      Recover Fully Encrypted Databases
      Back Up (Dump) a Fully Encrypted Database
        Back Up the Database Encryption Key
      Restore (Load) Backups of Fully Encrypted Databases
        Loading Behavior of Encrypted Databases
      Dropping a Database That is Being Encrypted
      Mounting and Unmounting a Fully Encrypted Database
      Archive Databases and Full Encryption
      Full Database Encryption and System Changes
    Scalability Enhancements and Features
      Run-Time Logging Enhancements
      Lock Management Enhancements
      Metadata and Latch Management Enhancements
    Monitoring Threshold-Based Events
    Multiple Triggers
      Creating Multiple Triggers
      Changing the Order of When a Trigger is Fired
      Order of Triggers in Merge Statements
      Transactional Behavior with Multiple Triggers
      Disabling and Reenabling Triggers
      @@trigger_name Global Variable
    Residual Data Removal
    Configuration History Tracking
      Configuring SAP ASE to Track Configuration Changes
      Changes Captured
      Querying ch_events to View Changes
    Cyclic Redundancy Checks for dump database
    Calculating the Transaction Log Growth Rate
    System Changes
      Configuration Parameters
        New Configuration Parameters
        Changed Configuration Parameters
      Built-In Functions
        dbencryption_status
      Commands
        alter database for Full Database Encryption
        alter index
        alter table for Index Compression
        alter table for Multiple Triggers
        alter table for Residual Data Removal
        create archive database for Full Database Encryption
        create database for Full Database Encryption
        create default
        create encryption key
        create function
        create function (SQLJ)
        create index
        create procedure
        create procedure (SQLJ)
        create rule
        create table for Index Compression
        create table for Residual Data Removal
        create trigger for Multiple Triggers
        create trigger for or replace
        create view
        drop encryption key
        drop trigger
        dump database
        kill
        load database
        select
        select into
        set
      System Procedures
        Changed System Procedures
          sp_audit
          sp_chgattribute
          sp_clusterlockusage
          sp_dboption
          sp_depends
          sp_encryption
          sp_familylock
          sp_helpdb
          sp_lock
        New System Procedures
          sp_confighistory
          sp_ dropglockpromote_ptn
          sp_droprowlockpromote_ptn
          sp_helptrigger
          sp_jsconfigure
          sp_logging_rate
          sp_setpglockpromote_ptn
          sp_setrowlockpromote_ptn
      System Tables
        Changed System Tables
        New System Tables
          ch_events
        Changed Monitoring Tables
        New Monitoring Tables
          monThresholdEvent
      Utilities
        ddlgen
        sybmigrate
        sybrestore
      Global Variables
  Security Administration Guide SAP Adaptive Server Enterprise 16.0
  SAP Control Center 3.3 for SAP Adaptive Server Enterprise
    About SAP Control Center for SAP Adaptive Server Enterprise
      New Features in SAP Control Center for SAP Adaptive Server Enterprise
      User Interface Overview
      Toolbar Icons
      Status Icons
      Display and Copy Options in SAP Adaptive Server Enterprise Monitors
      Common Display Options
      Keyboard Shortcuts
      Displaying the Versions of SCC Components
      Style and Syntax Conventions
      SAP Control Center Accessibility Information
    Get Started
      Quick Start for an Evaluation
      Get Started in a Production Environment
      Deploying an Instance from a Shared Disk Installation
        Enabling and Disabling Shared-Disk Mode
        Shared-Disk Mode
        sccinstance Command
      Launching SAP Control Center
        Registering the ODBC Driver in Windows
        Starting and Stopping SAP Control Center in Windows
        Starting and Stopping SAP Control Center in UNIX
        Configuring Memory Usage
          Changing a Memory Option on the Command Line
          Changing a Memory Option for an SAP Control Center Windows Service
          Changing a Memory Option for an SCC UNIX Service
        scc Command
      Logging in to SAP Control Center
      Logging out of SAP Control Center
      Setting Up Security
        Security
        Configuring Authentication for Windows
        Configuring a Pluggable Authentication Module (PAM) for UNIX
        Configuring an LDAP Authentication Module
          LDAP Configuration Properties
        Mapping SAP Control Center Roles to LDAP or OS Groups
        Encrypting a Password
        Configuring Ports
      Configuring the E-mail Server
      Configuring the Automatic Logout Timer
      Configuring Retrieval Thresholds for the Administration Console
      User Authorization
        Assigning a Role to a Login or a Group
        Removing a Role from a Login or a Group
        Adding a Group
        Removing a Group
        Adding a Login Account to a Group
        Removing a Login Account from a Group
        Adding a Login Account to the System
        Removing a Login Account from the System
        Modifying a User Profile
        Logins, Roles, and Groups
    Configure
      Configuring SAP Adaptive Server Enterprise for Monitoring
      Registering an SAP ASE Server
      Importing Resources for Batch Registration
      Registering the Agent for an SAP ASE Server
      Authenticating a Login Account for a Managed Resource
        Role Assignment in SAP Control Center for SAP ASE
        Encrypted Authentication for SAP ASE
      Setting Up Statistics Collection
        About Statistics
        SAP ASE Data Collections
        Key Performance Indicators for SAP ASE
      Creating an Alert
        SAP ASE Alerts
        Alert Types, Severities, and States for SAP ASE
        Alert-Triggered Scripts
        Alert-Triggered Script Examples
        Substitution Parameters for Scripts
      Setting Display Options for SAP ASE Performance Data
      Optional Configuration Steps
    Manage and Monitor
      Displaying Resource Availability: the Heat Chart
      Graphing Performance Counters: the Statistics Chart
      Manage SAP Control Center
        Administration Console
          Browsing and Managing Resources
          Searching and Filtering Resources
          Searching for Objects in SAP ASE
            Manage Message Rows for Search Requests
          Configuring Retrieval Thresholds for the Administration Console
        Job Scheduling
          Executing and Stopping a Data Collection Job
          Deleting a Data Collection Job
          Resuming and Suspending a Data Collection Job
          Adding a New Schedule to a Job
          Viewing or Deleting a Schedule
          Modifying the Data Collection Interval for a Job
          Resuming and Suspending the Scheduler
          Viewing the Job Execution History
        Alerts
          SAP ASE Alerts
          Alert Types, Severities, and States for SAP ASE
          Creating an SAP ASE Alert
          Displaying SAP ASE Alerts
          Modifying an Alert
          Deleting an Alert
          Alert Subscriptions
            Adding or Modifying an Alert Subscription
            Unsubscribing from an Alert
            Enabling and Disabling Alert Subscription
          Alert Notifications
            Displaying Alert History and Resolutions
            Resolving Alerts
          Alert-Triggered Scripts
            Substitution Parameters for Scripts
            Testing an Alert-Triggered Script
            Alert-Triggered Script Examples
        Resources
          Unregistering a Resource
          Adding a Resource to a Perspective
          Removing a Resource from a Perspective
          Modifying a Resource’s Name and Connection Properties
          Searching for Resources in the Resource Explorer
        Perspectives
          Creating a Perspective
          Removing a Perspective
          Renaming a Perspective
        Views
          Managing a View
          Arranging View Layout in a Perspective
        Instances
          Enabling and Disabling Shared-Disk Mode
          Deploying an Instance from a Shared Disk Installation
          Refreshing or Converting an Instance
          Removing an Instance
          Shared-Disk Mode
          sccinstance Command
        Repository
          Scheduling Backups of the Repository
          Modifying the Backup Schedule
          Forcing an Immediate Backup
          Restoring the Repository from Backups
          Configuring Repository Purging
        Logging
          Viewing the SAP ASE Component Log
          Viewing SAP Control Center Server Logs
          Viewing the SAP Control Center Client Log
          Changing the Logging Level
          Logging or Message Levels
          Changing Logging Configuration
        SAP Control Center Console
          Console Commands
            help Command
            info Command
            shutdown command
            status Command
        Setting SAP ASE Parameters in the Configuration File
          Configuration Parameters for SAP ASE
      Manage and Monitor the SAP ASE Environment
        Managing an SAP ASE server
          Executing SQL Statements
          Registering the Agent for an SAP ASE Server
          Authenticating the Unified Agent
          Authenticating the SCC Agent
          Starting an SAP ASE Server
          Stopping an SAP ASE Server
          Configuring Retrieval Thresholds for the Administration Console
          SAP ASE Error Log
            Viewing the SAP ASE Error Log
            Searching the Error Log for Messages
            Managing Flag Definitions
              Importing Flag Definitions
              Exporting Flag Definitions
          Server Configuration
            Displaying Configuration Values
            Modifying Server Configuration Parameters
            Server Configuration Statistics and Details
            Server Monitor Settings
          Server Properties
          Activating a Role
          Managing Permissions
            Enabling Granular Permissions
          Replacing Compiled Object Definitions
        Displaying the Performance Overview
          Performance Overview Statistics and Details
        Caches
          Monitor Caches
            Monitoring SAP ASE Data Caches
            Modifying Data Cache Sizes
            Adding Data Cache Buffer Pools
            Data Cache Statistics and Details
            Monitoring the SAP ASE Procedure Cache
            Procedure Cache Statistics and Details
            Monitoring the SAP ASE Statement Cache
              Setting the Statement Cache Size
            Statement Cache Statistics and Details
            Monitoring SAP ASE In-memory Storage
          In-memory Storage Statistics and Details
          Manage Caches
            Creating a Cache
            Cache Properties
            Managing Binding Options
            Managing Buffer Pools
            Managing Cache Configurations
            Generating DDL for a Cache
            Deleting a Cache
        Clusters
          Monitor Clusters
            Cluster Instances
              Monitoring Cluster Instances in Cluster Configurations
              Cluster Instances Statistics and Details
            Cluster Interconnect
              Displaying the Cluster Overview
              Cluster Interconnect Statistics and Details
              Monitoring Interprocess Communication in Cluster Configurations
            Workload Management
              Monitoring Workloads in Cluster Configurations
              Workload Management Statistics and Details
          Manage Clusters
            Starting the SCC agent for a Cluster
            Starting the Unified Agent for a Cluster
            Preparing to Create a Cluster
            Creating a Cluster
            Registering a Cluster
            Registering the Agent and Starting a Cluster
            Displaying Cluster Configuration Values
            Starting a Cluster
            Stopping a Cluster
            Dropping a Cluster
            Viewing a Cluster Log
            Cluster Properties
            Manage Logical Clusters
              Adding a Logical Cluster
              Designating a Failover Logical Cluster
              Designating a Failback Logical Cluster
              Logical Cluster States
                Changing the State of a Logical Cluster
              Deleting a Logical Cluster
              Generating a DDL Script for a Logical Cluster
              Logical Cluster Properties
            Manage Cluster Instances
              Displaying Instance Configuration Values
              Starting an Instance
              Adding an Instance to a Cluster
              Stopping an Instance
              Deleting an Instance
              Instance Properties
              Viewing an Instance Log
            Manage Load Profiles
              Adding a Load Profile
              Deleting a Load Profile
              Generating a DDL Script for a Load Profile
              Load Profile Properties
            Manage Routes
              Adding a Route
              Deleting a Route
              Route Properties
            Manage Auxiliary Servers
              Configuring a Backup Server
              Deleting a Backup Server
              Backup Server Properties
              Configuring an XP Server
              Deleting an XP Server
              XP Server Properties
        Databases
          Monitor Databases
            Determining the Backup Status of a Database
            Displaying Resources Used by a Database
            Modifying Database Sizes
            Database Statistics and Details
            Displaying Information About Segments Used by a Database
          Manage Databases
            Creating a User Database
            Creating a Proxy Database
            Creating a Temporary Database
            Creating an Archive Database
            Creating an In-Memory Database
            Creating an In-Memory Temporary Database
            Creating an Encrypted Database
              Encrypting an Existing Database
              Suspending the Encryption Process
              Resuming the Encryption Process
              Decrypting an Encrypted Database
                Suspending the Decryption Process
                Resuming the Decryption Process
            Creating a Temporary Database Group
            Shrinking a Database
            Backing Up (Dumping) a Database
              Viewing Available Dump Configurations
              Creating a Dump Configuration
              Backing Up a Database Using a Dump Configuration
              Dump Configuration Properties
              Deleting a Dump Configuration
              Backing Up a Database or Transaction Log to Multiple Stripes
              Backing Up a Database Incrementally
              Backing Up a Database Incrementally Using a Dump Configuration
              Viewing Dump Records
              Purging Dump Records from Dump History
              Generating Database-Creation SQL for a Target Database
              Generating Database-Creation SQL from a Dump Image
              Backing Up Server Configuration Files
            Scheduling a Database Backup
              Requirements and Permissions for Scheduling Backups
              Creating a Schedule for Backups
              Schedule Properties
              Deleting a Schedule
              Scheduling a Backup Job in the Backup Wizard
              Creating a New Scheduled Backup Job
              Properties of a Scheduled Backup Job
              Manage a Scheduled Backup Job
                Enabling Scheduled Jobs
                Deleting a Backup Job from the Schedule
                Disabling Scheduled Jobs
                Running a Scheduled Job Now
                Rescheduling a Backup Job
                Terminating a Scheduled Job in Progress
              Viewing the Execution History of a Scheduled Backup Job
                Job History Properties
                Viewing the Contents of the Execution History Log
                Deleting the Execution History of a Scheduled Backup Job
              Job Scheduler Administration
              Set Up an Alert for When a Backup Job Fails
            Restoring (Loading) a Database
              Generating a Database Load Sequence
              Generating a Database Load Sequence for a Target Database from Dump History
              Restoring a Database from a Cumulative Dump
              Restoring a Database from a SQL Script
              Restoring a Database from a Point in Time
            Viewing Database Statistics
            Checkpointing Databases
            Checking Database Consistency
            Placing a Database in Quiesce-Hold
            Placing a Database in Quiesce-Release
            Mounting an SAP ASE Database
            Unmounting an SAP ASE Database
            Database Properties
              Changing Database Ownership
              Modifying Database Storage Allocations
              Modifying the Transaction Log Cache and the Log I/O Buffer Size
              Changing Database Options
            Generating DDL for a Database
            Deleting a Database
        Defaults
          Creating a Default
          Defaults Properties
          Replacing a Default Definition
          Deleting a Default
        Devices
          Monitor Devices
            Determining Device I/O Response and I/O per Second
            Modifying Device Sizes
            Device Statistics and Details
          Manage Devices
            Displaying a Device Object
            Creating a Database Device
            Creating an In-Memory Device
            Creating a Dump Device
            Database Device Properties
            In-Memory Device Properties
            Dump Device Properties
            Generating DDL for a Device
            Deleting a Database, In-Memory, or Dump Device
        Engines
          Monitor Engines
            Displaying Engine CPU Utilization
            Engine Statistics and Details
          Manage Engine Groups
            Creating Engine Groups
            Engine Groups Properties
            Deleting an Engine Group
            Generating DDL for an Engine Group
        Execution Classes
          Creating Execution Classes
          Execution Classes Properties
          Modifying Bindings to Execution Classes
        Extended Stored Procedures
          Creating an Extended Stored Procedure
          Replacing an Extended Stored Procedure Definition
          Extended Stored Procedures Properties
          Granting Execute Permission on an Extended Stored Procedure
          Revoking Execute Permission on an Extended Stored Procedure
          Deleting an Extended Stored Procedure
          Generating DDL for an Extended Stored Procedure
        Functions
          Manage Scalar Functions
            Creating a Scalar Function
            Replacing a Scalar User Defined Function Definition
            Scalar Function Properties
            Granting Execute Permission on a Scalar Function
            Revoking Execute Permission on a Scalar Function
            Deleting a Scalar Function
            Generating DDL for a Scalar Function
          Manage SQLJ Functions
            Creating a SQLJ Function
            Replacing a SQLJ Function Definition
            SQLJ Function Properties
            Deleting a SQLJ Function
            Generating DDL for a SQLJ Function
        Networks
          Managing Remote Servers
            Configuring a Server for Remote Procedure Calls
            Adding a Remote Server
            Deleting a Remote Server
            Remote Server Properties
              Testing a Remote Server Connection
              Setting Options for a Remote Server
              Managing Remote Server Login Mappings
              Managing CIS Roles and Logins Mappings
        Precomputed Result Sets
          Configuring SAP ASE to Use Precomputed Result Sets
          Viewing Precomputed Result Sets
          Creating a Precomputed Result Set
          Deleting a Precomputed Result Set
          Altering a Precomputed Result Set
          Refreshing Precomputed Result Sets
          Truncating a Precomputed Result Set
          Granting Permissions on Precomputed Result Sets
          Revoking Permissions on Precomputed Result Sets
          Granting Precomputed Result Set Permissions to a Specific User
          Revoking Precomputed Result Set Permissions from a Specific User
          Displaying Information About Precomputed Result Sets
          Generating DDL for a Precomputed Result Set
        Procedures
          Manage Stored Procedures
            Creating a Stored Procedure
            Replacing a Stored Procedure Definition
            Stored Procedure Properties
            Granting Execute Permission on a Stored Procedure
            Revoking Execute Permission on a Stored Procedure
            Deleting a Stored Procedure
            Generating DDL for a Stored Procedure
          Manage SQLJ Procedures
            Creating a SQLJ Procedure
            Replacing a SQLJ Procedure Definition
            SQLJ Procedure Properties
            Deleting a SQLJ Procedure
            Generating DDL for a SQLJ Procedure
        Processes
          Identifying Resource-Intensive Processes
          Identifying Blocked Processes and Blocking Processes
          Terminating Blocking Processes
          Identifying the Lead Blocker in a Chain
          Displaying the SQL Query Associated with a Process
          Displaying Wait Events for a Process
          Process Statistics and Details
        Replication Agents
          Monitoring RepAgent Threads
          Replication Agent Statistics and Details
        Rules
          Manage Rules
            Creating a Rule
            Replacing a Rule Definition
            Rule Properties
            Deleting a Rule
            Generating DDL for a Rule
        Security
          Manage Encryption Keys
            Modifying and Deleting a System Encryption Password
            Creating a System Encryption Password
            Creating a Master Key
            Master Key Properties
            Modifying, Regenerating, and Deleting a Master Key
            Dual Control and Split Knowledge
            Creating a Column Encryption Key
            Column Encryption Keys Properties
            Creating a Key Copy
            Modifying and Deleting a Column Encryption Key
            Creating a Database Encryption Key
            Database Encryption Keys Properties
            Granting Encryption Permissions to a Role, User, or Group
            Modifying a Database Encryption Key
            Deleting an Encryption Key
            Generate DDL for an Encryption Key
          Manage Login Profiles
            Creating a Login Profile
            Login Profile Properties
            Removing Roles Granted to a Login Profile
            Granting Roles to a Login Profile
            Deleting a Login Profile
            Displaying Logins Assigned to a Login Profile
            Transferring Login Attributes to a Login Profile
          Manage Logins
            Creating a Login
            Login Properties
            Managing Users Mapped to Logins
            Removing Roles from a Login
            Granting Roles to a Login
            Configuring Login Password Properties
            Changing a Login Password
            Displaying Login Account Properties
            Assigning Login Profiles to a Login
            Deleting a Login
          Manage Groups
            Creating a Group
            Adding or Removing Users to or from a Group
            Group Properties
            Setting Command Permissions for a Group
            Granting Object Permissions to a Group
            Revoking Object Permissions from a Group
            Granting Privileges to a Group
            Revoking Privileges from a Group
            Deleting a Group
            Generate DDL for a Group
          Manage Users
            Creating a User
            Transferring Ownership of a Database Object
            Users Properties
            Granting Object Permissions to a User
            Revoking Object Permissions from a User
            Granting Privileges to a User
            Revoking Privileges from a User
            Setting Command Permissions for a User
            Deleting a User
          Manage Roles
            Expiring a Role Password
            Creating a Role
            Restoring System Roles
            Role Properties
            Revoking Object Permission from a Role
            Granting Object Permissions to a Role
            Revoking Privileges from a Role
            Granting Privileges to a Role
            Creating Role Hierarchy
            Managing Mutually Exclusive Roles
            Removing Login Profiles Assigned to a Role
            Assigning Login Profiles to a Role
            Removing Logins Assigned to a Role
            Assigning Logins to a Role
            Setting Command Permissions for a Role
        Segments
          Monitor Segments
            Determining the Space Used by a Table on a Segment
            Extending a Segment in SAP ASE
            Segment Statistics and Details
          Manage Segments
            Displaying Segments
            Creating a Segment
            Segment Properties
            Removing a Threshold from a Segment
            Adding a Threshold to a Segment
            Removing a Database Device from a Segment
            Adding a Database Device to a Segment
            Deleting a Segment
            Generating DDL for a Segment
        Statistics
          Interpreting Statistics
          Updating Statistics on a Table
          Updating Statistics on Specific Columns
          Updating Statistics on an Index
          Updating Statistics for a Data Partition
          Updating Statistics on an Index Partition
          Deleting Statistics from a Table
          Deleting Statistics from a Column
          Deleting Statistics from a Data Partition
        SQL Activity
          Monitoring SQL Queries
          Executing SQL Statements
        Tables
          Creating a User or Proxy Table
          Creating a Column
          Creating an Index
          Restoring Table Data
          Creating a Foreign Key
          Creating a Check Constraint
          Checking Table Consistency
          Binding Defaults and Rules to a Column
          Placing a Table on a Segment
          Setting the Table Locking Scheme
          Creating a Unique Constraint or Primary Key
          Manage Table Compression
            Identifying Table Compression Candidates
            Initiating a Compression Estimate
            Applying Compression Settings
          Manage Index Compression
            Setting Index Compression on an Index
            Setting Index Compression on a Local Index Partition
            Setting Index Compression on a Table
          Manage Triggers
            Creating a Trigger
            Trigger Properties
            Replacing a Trigger Definition
          Incrementally Transferring Data
            Enabling Incremental Transfer
            Incrementally Transferring Data In
            Incrementally Transferring Data Out
          Bulk Copying Data
            Bulk Copying Data Into or Out of Tables
          Setting Table or Column Permissions
            Granting Table Permissions
            Revoking Table Permissions
            Granting Column Permissions
            Revoking Column Permissions
          Manage Partitions
            Partition Locking
              Enabling Partition Locking
            Enabling Semantic-based Partitioning
            Using a Hash Partition
            Using a Range Partition
            Using a List Partition
            Using a Round-Robin Partition
            Splitting a Partition
            Merging Partitions
            Moving a Partition
            Deleting a Partition
          Reorganize Tables and Table Objects
            Reorganizing Tables at the Database Level
            Reorganizing Tables
            Reorganizing Table Partitions
            Reorganizing Indexes
            Reorganizing Index Partitions
            Status Messages
          Table Properties
          Column Properties
          Index Properties
          Foreign Key Properties
          Check Constraint Properties
          Partition Properties
          Deleting a Table
          Deleting an Index
        Thread Pools
          Monitor Threads
            Identifying the Threads in a Thread Pool
            Thread Statistics and Details
          Manage Thread Pools
            Creating a Thread Pool
            Thread Pool Properties
        Transactions
          Identifying a Transaction’s Process
          Transaction Statistics and Details
        User-Defined Datatypes
          Adding a User-Defined Datatype
          User-Defined Datatypes Properties
          Deleting a User-Defined Datatype
        Views
          Creating a View
          Replacing a View Definition
          View Properties
          Granting Permissions on Views
          Revoking Permissions on Views
          Deleting a View
    Troubleshoot SAP Control Center for SAP ASE
      Data Display Problems
        Cannot Monitor SAP ASE or Display Statistics Chart
        Data on Screens or Charts Is Missing
        Database Objects Are Not Updated
        Error: No Result Set for this Query
        Error: No Data Was Found For Statistic
        Error: Unable to Format the Date String
        Properties for Engine Groups Incorrectly Displayed
        Same Name Engine Groups Are Not Selectable
        "Number of Transactions" KPI Is Not Updated
        Cannot Find Error Information For Monitor View
        Display Large Number of Objects in Administration Console
      Data Collection and Alert Problems
        Collection Job for SAP ASE Fails
        Alerts Are Configured But Do Not Fire
        Data Collections Fail to Complete
        Alerts Are Not Generated
      Authentication and Access Problems
        Cannot Log In
        SAP Control Center Fails to Start
        Browser Refresh (F5) Causes Logout
        Invalid Connection Profile
        Cannot Authenticate Server Configured with a Multibyte Character Set
        Features Are Not Enabled Although You Have sa_role
        Resetting the Online Help
      Performance Problems
        SAP ASE is Responding Slowly
        Memory Warnings at Startup
        SCC Out of Memory Errors
        Performance Statistics Do Not Cover Enough Time
      Collect Diagnostic Data
        Preparing to Collect Diagnostic Data
        Collecting Field Diagnostic Data
        Collecting Optimizer Diagnostic Data
        Upload Diagnostic Data
          Uploading Diagnostic Data Via FTP
          Submitting Diagnostic Data via E-mail Message
        Deleting a Diagnostic Data File
    Glossary: SAP Control Center for SAP ASE
  Utility Guide SAP Adaptive Server Enterprise 16.0
    Types of Utilities
      Threaded Versions of Utilities
      Installation or Configuration Utilities
      Utilities for Languages, Character Sets, and Sort Orders
      Utilities to Start Servers
      Database Creation and Manipulation Utilities
      Utilities to Gather Information
      Tuning Utility
      Utility to Manage a Cluster
    Utility Commands Reference
      auditinit
      backupserver
      bcp
        Usage for bcp
          Copying Tables with Indexes or Triggers Using bcp
          Using bcp with Compressed Data
      buildmaster
      certauth
      certpk12
      certreg
      charset
      cobpre
      cpre
      dataserver
        Usage for dataserver
          Dependencies and Conditions of dataserver -b and -w Options
          Potential Issues of Using dataserver -f and -w Options Together
      ddlgen
        Usage for ddlgen
          Hiding Passwords in ddlgen
          ddlgen and Encryption
            ddlgen for Encrypted Columns
            Encrypted Columns and Specifying the -XOD Flag in ddlgen
            ddlgen Support for Key Copies
            EKC Encryption Key Copy Filter and ddlgen
          Create Table DDL
      defncopy
      dscp
      dsedit
      extractjava
      installjava
        Usage for installjava
          Cases When Adding New JARs Causes Exceptions
          Updating JARs and Classes
          Locks
      isql
        Usage for isql
          Interactive isql Commands
          isql Session Commands
          Prompt Labels and Double Wildcards in an isql Session
          Command History in isql
      langinstall
      optdiag
        Usage for optdiag
          Byte Ordering and Binary optdiag Files
          optdiag Input Mode
      preupgrade
        Usage for preupgrade
          The preupgrade -D Parameter
      pwdcrypt
      qptune
      qrmutil
      showserver
      sqldbgr
        Usage for sqldbgr
          Error Messages in sqldbgr
      sqlloc
      sqllocres
      sqlsrvr
        Usage for sqlsrvr
          Starting an SAP ASE Server
          startsrvr Dependencies and Conditions with -b and -w
      sqlupgrade
      sqlupgraderes
      srvbuild
        Usage for srvbuild
          Using LDAP with srvbuild in a 64-bit Environment
      srvbuildres
      startserver
        Usage for startserver
          The Runserver File
      sybatch
      sybcluster
      syconfig
      sybdiag
        Usage for sybdiag
          Viewing sybdiag Output
          Configuration Options for sybdiag
      sybdumptran
        Usage for sybdumptran
      sybmigrate
      sybrestore
      sybtsmpasswd
      updatease
      xpserver
    Using bcp to Transfer Data to and from SAP ASE
      Methods for Moving Data
        Import and Export Data with bcp
      bcp Modes
      bcp Requirements
        bcp Permissions
        Before You Transfer
      Copy Data to Partitions Using bcp
      Improve bcp Performance
        Fast, Fast-logged, and Slow bcp
          Slow bcp
          Fast bcp
          Fast-logged bcp
          Copying Tables with Indexes
            Locking Scheme and Fast bcp
          Space Requirements for Copying
        Summary of Steps for Fast and Fast-logged bcp
        Bulk Copying Data into Partitioned Tables
          Copying Data Randomly Into Partitions
          Monitoring bcp Sessions with dbcc checktable and sp_helpsegment
          Reducing Logging by Increasing Page Allocations
        Using Parallel Bulk Copy to Copy Data into a Specific Partition
          bcp in and Locks
          Parallel Bulk Copy Methods
          Parallel Bulk Copy Syntax
          Using Parallel Bulk Copy on Round-robin Partitioned Tables
          Parallel Bulk Copy and IDENTITY Columns
            Retaining Sort Order
            Specifying the Value of a Table’s IDENTITY Column
      Bulk Copying Encrypted Data
      bcp Options
        Using the Default Formats
          Native Format
          Character Format
        Change Terminators from the Command Line
      Change the Defaults in Interactive bcp
        Respond to bcp Prompts
        File Storage Type
        Prefix Length
        Field length
        Field and Row Terminators
          Choose Terminators
      Format Files
      Examples of Copying Out Data Interactively
      Examples of Copying In Data Interactively
      bcp and Alternate Languages
      Support for Initialization Strings
      bcp and Row-Level Access Rules
      Copy In and Batch Files
        Improve Recoverability
        Batches and Partitioned Tables
      Copy Out and Text and Image Data
      Specify a Network Packet Size
      Copy In and Error Files
      Copy Out and Error Files
      Data Integrity for Defaults, Rules, and Triggers
      How bcp Differs from Other Utilities
    Using dataserver Build Servers
      Building a New Master Device
        Environments When Using dataserver
        Specifying Device and Logical Page Sizes When Building a New SAP ASE Server
        Starting an Existing a SAP ASE Server
        Upgrading to a Server With Larger Page Sizes
        Viewing the Current Server Limits
    Using dscp to View and Edit Server Entries
      Starting dscp
        Working with Server Entries
          Adding and Modifying Server Entries
            Adding a Server Entry
            Modifying or Deleting a Server Entry
          Copy Server Entries
          List and View Contents of Server Entries
          Delete Server Entries
        Exiting dscp
    Using dsedit to View and Edit Server Entries
      Add, View, and Edit Server Entries
      Using dsedit in UNIX
        Starting dsedit in UNIX
        Open an Editing Session in UNIX
        Modify Server Entries in UNIX
          Adding a New Server Entry in UNIX
          Viewing or Modifying a Server Entry in UNIX
          Add or Edit Network Transport Addresses
            TCP/IP Addresses
            SPX/IPX Addresses
        Copying a Server Entry to Another Interfaces File in UNIX
        Copying Server Entries Within the Current Session
        Copying Server Entries Between Sessions
      Using dsedit in Windows
        Starting dsedit in Windows
        Open an Editing Session in Windows
          Opening a Session in Windows
          Opening Additional Sessions in Windows
          Switching Between Sessions in Windows
        Modify Server Entries in Windows
          Adding a Server Entry
          Modifying a Server Attribute
          Renaming a Server Entry
          Deleting a Server Entry
        Copying Server Entries Within the Current Session in Windows
        Copying Server Entries Between Sessions in Windows
      Troubleshooting dsedit
    Using Interactive isql from the Command Line
      Starting isql
      Stopping isql
      Using Transact-SQL in isql
        Formatting isql Output
        Correcting isql Input
        set Options that Affect Output
      Changing the Command Terminator
      Performance Statistics Interaction with Command Terminator Values
      Input and Output Files
        UNIX command line redirection
    Using Interactive SQL in Graphics Mode
      Starting Interactive SQL
      The Main Interactive SQL Window
        Plan Dialog Tab
      The Interactive SQL Toolbar
      Open Multiple Windows
      Keyboard Shortcuts
      Display Data Using Interactive SQL
      Edit Table Values in Interactive SQL
        Copying Rows from the Interactive SQL Result Set
        Editing Rows from the Interactive SQL Result Set
        Inserting Rows into the Database from the Interactive SQL Result Set
        Deleting Rows from the Database Using Interactive SQL
      SQL Statements in Interactive SQL
        Canceling an Interactive SQL Command
        Combining Multiple Statements
        Looking Up Tables, Columns, and Procedures
        Recall Commands
        Logging Commands
      Configure Interactive SQL
        General Dialog Box
        Result Dialog Box
        Import/Export Dialog Box
        Messages Dialog Tab
        Editor Dialog Box
        Query Editor Dialog Box
      Processing Command Files
        Saving SQL Statements to a File
        Executing Command Files
        Saving, Loading, and Running Command Files
      The SQL Escape Syntax in Interactive SQL
      Interactive SQL Commands
    Interactive sybcluster Commands Reference
      Commands Active Before Connecting to a Cluster
      Commands Active After Connecting to a Cluster
      add backupserver
      add instance
      connect
      create backupserver
      create cluster
      create xpserver
      deploy plugin
      diagnose cluster
      diagnose instance
      disconnect
      drop backupserver
      drop cluster
      drop instance
      drop xpserver
      exit
      help
      localize
      quit
      set backupserver
      set cluster
      set instance
      set xpserver port
      show agents
      show backupserver config
      show cluster
      show instance
      show membership mode
      show session
      show xpserver
      shutdown cluster
      shutdown instance
      start cluster
      start instance
      upgrade server
      use
    Using sybmigrate to Migrate Data
      What sybmigrate Does
      What sybmigrate Does Not Do
      Before You Begin
        Permissions
          Changing Target Login Accounts
        Platforms
        Environment Settings
        Migrating Proxy Tables
      Migration process
        Overview of the Migration Process
        Pre-migration Considerations
        Configuration and Tuning for Higher Performance
          Configuration Considerations for SAP ASE
        Possible Errors to Avoid
        Auto-select Dependent Objects for Migration
        Migrating an Archive Database
          Upgrading an SAP ASE Server with an Archive Database
          Downgrading an SAP ASE Server with an Archive Database
        GUI Mode
          Setting Up Source Databases for Migration
          Begin the Migration
          Validating the Migration
          Migration and Validation Progress
        Resource File Mode
      Using sybmigrate with Encrypted Columns
      Post-migration Activities
      Migrate Databases in the Replication Server Domain
        Preparing for Migration
        Postmigration Procedures
          Restoring Primary Databases
          Restoring the RSSD
          Amending System Tables When the Logical Page Size Changes
          Restoring Replicate Databases
          Logs
        Migrating Databases That Support Wide Data
      Limitations
        Stopping High Availability
        Other Limitations
      Troubleshooting and Error Messages
    Using sybrestore to Restore Databases
      Before You Begin
      sybrestore Checks
        Compatibility Geometry Check
      sybrestore Syntax
      Restoring a Database in Noninteractive Mode
      Restoring a Database in Interactive Mode
        Interactive Menu Options
        Logging sybrestore Output
        Providing a Mapping Directory
        Restoring a Database to a Point In Time
          Example of Restoring a Database to a Point In Time
        Restoring User and System Databases
        Master Database Restore
          Prerequisites for Restoring a Master Database
          Configuration and Resource Files
            Creating or Editing the Restore Utility Configuration File
            Creating or Editing Resource Files
            Resource File Examples
          Restoring a Master Database
  Transact-SQL Users Guide 16.0
    SQL Building Blocks
      Tables, Columns, and Rows
      Queries, Data Modification, and Commands
      Relational Operations
      Compiled Objects
        Save or Restore Source Text
        Verify and Encrypt Source Text
        Replacing Object Definitions
      Compliance to ANSI Standards
        Federal Information Processing Standards (FIPS) Flagger
        Chained Transactions and Isolation Levels
        Identifier Compliance to ANSI Standards
        SQL Standard-Style Comments
        Right Truncation of Character Strings
        Permissions Required for update and delete Statements
        Arithmetic Errors
        Synonymous Keywords
        Treatment of Nulls
      Data and Language Characters
        Naming Convention Identifiers
          Multibyte Character Sets
          Delimited Identifiers
          Uniqueness and Qualification Conventions
          Remote Servers
      Expressions in SAP ASE
        Arithmetic Operators
        Bitwise Operators
        The String Concatenation Operator
        The Comparison Operators
        Nonstandard Operators
        Character Expression Comparisons
        Empty Strings
        Quotation Marks
        Relational and Logical Expressions
      Transact-SQL Extensions
        compute Clause
        Control-of-Flow Language
        Stored Procedures
        Extended Stored Procedures
        Triggers
        Defaults and Rules
        Error Handling and set Options
        Additional SAP ASE Extensions to SQL
      SAP ASE Login Accounts
      isql Utility
        Default Databases
        Network-Based Security Services with isql
      Displaying SQL Text
    Databases and Tables
      Databases
      Create a User Database
        The on Clause
        The log on Clause
        for load Option
      Choose a Database
      Permissions Within Databases
      Initialize Databases Asynchronously
        Determine If There is Space to be Initialized
        Restrictions for Initializing Databases Asynchronously
      Drop Databases
      Change the Database Size
      Enforce Data Integrity in Databases
      quiesce database Command
      Tables
      Designing and Creating a Table
        Table Names
        Create the User-Defined Datatypes
        Choose Columns That Accept Null Values
        Sample Table Design Sketch
          Define the Sample Table
      Create Tables in Different Databases
      Create New Tables from Query Results: select into
        Check for Errors
      Temporary Tables Usage
        Unique Temporary Table Names
        Manipulate Temporary Tables in Stored Procedures
        General Rules for Temporary Tables
      Deferred Table Creation
        Deferred Table Creation at the Database Level
        Create Deferred Tables
        Explicitly Materialize Deferred Tables
        Identify Deferred Tables
        Roll Back for Deferred Tables
        Command Behavior in Deferred Tables
      IDENTITY Columns Usage
        Create IDENTITY Columns with User-Defined Datatypes
        Reference IDENTITY Columns
        Refer to IDENTITY Columns with syb_identity
        Automatically Create “hidden” IDENTITY Columns
        Using select into with IDENTITY Columns
          Select an IDENTITY Column into a New Table
          Select the IDENTITY Column More Than Once
          Add a New IDENTITY Column with select into
          Define a Column for Which the Value Must Be Computed
          IDENTITY Columns Selected into Tables with Unions or Joins
      Allow Null Values in a Column
        Constraints and Rules Used with Null Values
        Defaults and Null Values
        Nulls Require Variable-Length Datatypes
        text, unitext, and image Columns
      Alter Existing Tables
        Objects Using select * Do Not List Changes to Table
        Use alter table on Remote Tables
        Add Columns
          Add Columns Appends Column IDs
          Add NOT NULL Columns
          Add Constraints
        Drop Columns
          Drop Columns Renumbers the Column ID
          Drop Columns Without Performing a Data Copy
            Restrictions for no datacopy Parameter
          Drop Constraints
        Modify Columns
          Convert Datatypes
          Modifying Tables and Using Bulk Copy
          Decreased Column Length May Truncate Data
          Modify datetime Columns
          Modify the NULL Default Value of a Column
          Check Columns That Have Precision or Scale
          Modify text, unitext, and image Columns
        Add IDENTITY Columns
        Drop IDENTITY Columns
        Modify IDENTITY Columns
        Data Copying
          Change exp_row_size
        Modifying Locking Schemes and Table Schema
        Add, Drop, or Modify Columns with User-Defined Datatypes
        Errors and Warnings from alter table
          Errors and Warnings Generated by alter table modify
          Scripts Generated by if exists()...alter table
        Rename Tables and Other Objects
          Rename Dependent Objects
      Drop Tables
      Manage Identity Gaps in Tables
        Parameters for Controlling Identity Gaps
        Comparison of identity burning set factor and identity_gap
        Set the Table-Specific Identity Gap
        Change the Table-Specific Identity Gap
        Display Table-Specific Identity Gap Information
        Gaps from Other Causes
        IDENTITY Column Maximum Value
      Define Integrity Constraints for Tables
        Table and Column Level Constraints
        Create Error Messages for Constraints
        Check Constraints
        Default Column Values
        unique and primary key Constraints
        Referential Integrity Constraints
          Table and Column Level Referential Integrity Constraints
          Using Create Schema for Cross-Referencing Constraints
          General Rules for Creating Referential Integrity Constraints
          Designing Applications That Use Referential Integrity
      Computed Columns
        Computed Columns Usage
          Computed Columns Example
        Indexes on Computed Columns
        Deterministic Property
          Effects of Deterministic Property on Computed Columns
          Effects of Deterministic Property on Materialized Computed Columns
          Effects of Deterministic Property on Virtual Computed Columns
          Effects of Deterministic Property on Function-Based Indexes
          Examples of Nondeterministic Computed Columns
      Retrieve Information About Databases and Tables
        Help on Databases
        Help on Database Objects
          sp_help Usage on Database Objects
          Use sp_helpconstraint to Find Table Constraint Information
          Determining Much Space a Table Uses
          List Tables, Columns, and Datatypes
          Find an Object Name and ID
    SQL-Derived Tables
      SQL-Derived Tables and Optimization
      SQL-Derived Table Syntax
        Derived Column Lists
        Correlated SQL-Derived Tables Are Not Supported
      SQL-Derived Tables Usage
        Nesting
        Subqueries Using SQL-Derived Tables
        Unions in Derived-Table Expressions
        Unions in Subqueries
        Rename Columns with SQL-Derived Tables
        Constant Expressions
        Aggregate Functions
        Joins with SQL-Derived Tables
        Create a Table From a SQL-Derived Table
        Views with SQL-Derived Tables
        Correlated Attributes
    Partition Tables and Indexes
      Partitioning Types
        Range Partitioning
        Hash Partitioning
        List Partitioning
        Round-Robin Partitioning
      Partition Pruning
      Composite Partitioning Keys
      Indexes and Partitions
        Global Indexes
        Local Indexes
        Guarantee a Unique Index
      Create and Manage Partitions
        Partitioning Tasks
        Create a Range-Partitioned Table
          Restrictions on Partition Keys and Bound Values for Range-Partitioned Tables
        Create a Hash-Partitioned Table
        Create a List-Partitioned Table
        Create a Round-Robin–Partitioned Table
        Create Partitioned Indexes
        Create a Partitioned Table From an Existing Table
      Change Data Partitions
        Split, Merge, and Move Partitions
          Partition Schemes Available for Splitting or Merging
          Split Partitions
          Merge Partitions
          Move Partitions
          Effect of Split or Merged Partitions on Indexes
        Add Partitions to a Partitioned Table
        Change the Partitioning Type or Key
        Unpartition Round-Robin–Partitioned Tables
        partition Parameter Usage
        Change Partition-Key Columns
      Configure Partitions
      update, delete, and insert in Partitioned Tables
      Update Values in Partition-Key Columns
      Display Information About Partitions
        Function Usage
      Truncate a Partition
      Using Partitions to Load Table Data
      Update Partition Statistics
      Improved Concurrency for Partition-Level Online Operations
        Partition-Level Online Operation Syntax
        Concurrency with Partition-Level Online Operations
        Partition-Level Online Operations with Global Index
    Virtually Hashed Tables
      Structure of a Virtually Hashed Table
      Create a Virtually Hashed Table
      Limitations for Virtually Hashed Tables
      Commands that Support Virtually Hashed Tables
      Query Processor Support
      Monitor Counter Support
      System Procedure Support
    Create Indexes on Tables
      Guidelines for Using Indexes
      Methods of Creating Indexes
      Create Indexes
        Issue create index in Parallel
          Configuring enhanced parallel create index
          Enhanced Parallel create index Usage
          View Parallel create index Commands with showplan
        Function-Based Indexes
        Create Indexes Without Blocking Access to Data
        Unique Indexes
        IDENTITY Columns in Nonunique Indexes
        Ascending and Descending Index-Column Values
        Using fillfactor, max_rows_per_page, and reservepagegap
      Indexes on Computed Columns
      Clustered or Nonclustered Index Usage
        Create Clustered Indexes on Segments
      Index Options
        ignore_dup_key Option
        ignore_dup_row and allow_dup_row
        sorted_data Option
        on segment_name Option
      Drop Indexes
      Identifying the Indexes on a Table
      Update Statistics for Indexes
    Datatypes
      System-Supplied Datatypes
        Exact Numeric Types: Integers
        Exact Numeric Types: Decimal Numbers
        Approximate Numeric Datatypes
        Money Datatypes
        Date and Time Datatypes
        Character Datatypes
          unichar Datatype
            Relational Expressions
            Join Operators
            Union Operators
            Clauses and Modifiers
          text Datatype
          unitext Datatype
        Binary Datatypes
          image Datatype
        bit Datatype
        timestamp Datatype
        sysname and longsysname Datatype
      LOB Locators in Transact-SQL Statements
        Implicitly Create a Locator
        Explicitly Create a Locator
        Convert the Locator Value to the LOB Value
        Locator Scope
      Convert Between Datatypes
      Mixed-Mode Arithmetic and Datatype Hierarchy
        Working with money Datatypes
        Determine Precision and Scale
      User-Defined Datatypes
        Length, Precision, and Scale
        Null Type
        Associate Rules and Defaults with User-Defined Datatypes
        Create User-Defined Datatype with IDENTITY Property
        Create IDENTITY Columns from User-Defined Datatypes
        Drop a User-Defined Datatype
      Datatype Entry Rules
        char, nchar, unichar, univarchar, varchar, nvarchar, unitext, and text
        Date and Time
          Enter Times
          Enter Dates
            Date Formats
          Search Dates and Times
        binary, varbinary, and image
        money and smallmoney
        float, real, and double precision
        decimal and numeric
        Integer Types and Their Unsigned Counterparts
        timestamp
      Get Information About Datatypes
    Queries: Selecting Data from a Table
      select Syntax
        Check for Identifiers in a select Statement
      Choose Columns Using the select Clause
        Choose all Columns Using select *
        Choose Specific Columns
        Rearrange the Column Order
        Rename Columns in Query Results
        Expressions
          Quoted Strings in Column Headings
          Character Strings in Query Results
          Computed Values in the select List
          Arithmetic Operator Precedence
        Select Text, Unitext, and Image Values
          readtext Usage
        select List Summary
      select for update
        Use select for update in Cursors and DML
        Concurrency Issues
      Eliminate Duplicate Query Results with Distinct
      Specify Tables with the from Clause
      Select Rows Using the where Clause
        Comparison Operators in where Clauses
        Ranges (between and not between)
        Lists (in and not in)
        Matching Character Strings: like
          not like Usage
          Different Results Using not like and ^
          Use Wildcard Characters as Literal Characters
          Interaction of Wildcard Characters and Square Brackets
          Use Trailing Blanks and %
          Use Wildcard Characters in Columns
        “Unknown” Values: NULL
          SQL Standard for NULL Concatenation
          Test a Column for Null Values
          Difference Between False and Unknown
          Substitute a Value for NULLs
          Expressions that Evaluate to NULL
          Concatenate Strings and NULL
          System-Generated NULLs
        Connect Conditions with Logical Operators
          Logical Operator Precedence
      Multiple select Items in a Nested exists Query
      Use a Column Alias in Nested select Statements
    Subqueries: Queries Within Other Queries
      Subquery Restrictions
      Qualify Column Names
      Subqueries with Correlation Names
      Multiple Levels of Nesting
      Using an Asterisk in Nested select Statements
        Use Table-Name Qualifiers
        Use Nested Queries with group by
        Usage and Examples of Asterisks in select Statements
      Subqueries in update, delete, and insert Statements
      Subqueries in Conditional Statements
      Subqueries Instead of Expressions
      Types of Subqueries
        Expression Subqueries
          Use Scalar Aggregate Functions to Guarantee a Single Value
          Use group by and having in Expression Subqueries
          Use distinct with Expression Subqueries
        Quantified Predicate Subqueries
          Subqueries with any and all
            > all Means Greater Than All Values
            = all Means Equal to Every Value
            > any Means Greater Than at Least One Value
            = any Means Equal to Some Value
        Subqueries Used with in
        Subqueries Used with not in
        Subqueries Using not in with NULL
        Subqueries Used with exists
        Subqueries Used with not exists
        Find Intersection and Difference with exists
        Subqueries Using SQL Derived Tables
      Correlated Subqueries
        Correlated Subqueries with Correlation Names
        Correlated Subqueries with Comparison Operators
        Correlated Subqueries in a having Clause
    Aggregates, Grouping, and Sorting
      Aggregate Functions and Datatypes
      count versus count (*)
      Aggregate Functions with distinct
      Null Values and the Aggregate Functions
      Using Statistical Aggregates
      Organize Query Results into Groups: the group by Clause
        group by and SQL Standards
        Nest Groups with group by
        Reference Other Columns in Queries Using group by
        Expressions and group by
        group by in Nested Aggregates
        Null Values and group by
        where Clause and group by
        group by and all
        Aggregates Without group by
      Select Groups of Data: the having Clause
        Interactions between having, group by, and where Clauses
        having Without group by
      Sort Query Results: the order by Clause
        order by and group by
        order by and group by Used with select distinct
      Summarize Groups of Data: the compute Clause
        Row Aggregates and compute
          Rules for compute Clauses
        Specify More Than One Column After compute
        Use More Than One compute Clause
        Apply an Aggregate to More Than One Column
        Use Different Aggregates in the Aame compute Clause
        Generate Totals: compute Without by
      Combine Queries: the union Operator
        Guidelines for union Queries
    Joins: Retrieve Data from Several Tables
      Join Syntax
      Joins and the Relational Model
      How Joins are Structured
        The from Clause
        The where Clause
          Join Operators
          Datatypes in Join Columns
          Joins and Text and Image Columns
      How Joins are Processed
      Equijoins and Natural Joins
      Joins with Additional Conditions
      Joins Not Based on Equality
      Self-Joins and Correlation Names
      The Not-Equal Join
        Not-Equal Joins and Subqueries
      Join More Than Two Tables
      Star Joins
      Outer Joins
        Inner and Outer Tables
        Outer Join Restrictions
        Views Used with Outer Joins
        ANSI Inner and Outer Joins
          Correlation Name and Column Referencing Rules for ANSI Joins
          ANSI Inner Joins
            The Join Table of an Inner Join
            The on Clause of an ANSI Inner Join
        ANSI outer joins
          Placement of the Predicate in the on or where Clause
          Nested ANSI Outer Joins
        Transact-SQL Outer Joins
          Outer Joins and Aggregate Extended Columns
      Relocated Joins
        Configuring Relocated Joins
      How Null Values Affect Joins
      Determine Which Table Columns to Join
    Managing Data
      Referential Integrity
      Transactions
      Sample Databases
      Add New Data
        Add New Rows with Values
        Insert Data into Specific Columns
          Restrict Column Data: Rules
          The NULL Character String
          Insert NULLs into Columns That Do Not Allow Them
          Add Rows Without Values in All Columns
          Change a Column’s Value to NULL
          SAP ASE-generated values for IDENTITY columns
          Explicitly Insert Data into an IDENTITY Column
          Retrieve IDENTITY Column Values with @@identity
          Reserve a Block of IDENTITY Column Values
          Maximum Value of the IDENTITY Column
            Modify the Maximum Value of the IDENTITY Column
            Creating a New Table with a Larger Precision
            Renumbering the Table IDENTITY Columns with bcp
        Add New Rows with select
          Use Computed Columns
          Insert Data into Some Columns
          Insert Data from the Same Table
      Create Nonmaterialized, Non-Null Columns
        Add Nonmaterialized Columns
        Tables That Already Have Nonmaterialized Columns
        Nonmaterialized Column Storage
        Alter Nonmaterialized Columns
        Limitations for Nonmaterialized Columns
      Change Existing Data
        Use the set Clause with Update
          Assign Variables in the set Clause
        Use the where Clause with update
        Use the from Clause with update
        Perform updates with joins
        Update IDENTITY Columns
      Change text, unitext, and image data
      Truncate Trailing Zeros
      Transfer Data Incrementally
        Mark Tables for Incremental Transfer
        Transfer Tables from a Destination File
        Convert SAP ASE Datatypes to SAP IQ
        Store Transfer Information
        Exceptions and Errors
        Sample Incremental Transfer
          Replacing Data with New Rows
      Delete Data
        Use the from Clause with delete
        Delete from IDENTITY Columns
      Delete All Rows from a Table
        truncate table Syntax
    Views: Limit Access to Data
      Advantages of Views
      Security
      Logical Data Independence
      Create Views
        create view Syntax
        select Statement Usage with create view
          View Definition with Projection
          View Definition with a Computed Column
          View Definition with an Aggregate or Built-In Function
          View Definition with a Join
          Views Used with Outer Joins
          Views Derived From Other Views
          Distinct Views
          Views That Include IDENTITY Columns
        Validate a View’s Selection Criteria
          Views Derived from Other Views
      Retrieve Data Through Views
        View Resolution
        Redefine Views
        Rename Views
        Alter or Drop Underlying Objects
      Modify Data Through Views
        Restrictions on Updating Views
      Drop Views
      Use Views as Security Mechanisms
      Get Information About Views
    Defining Defaults and Rules for Data
      Create Defaults
        Bind Defaults
        Unbind Defaults
        How Defaults Affect NULL Values
      Drop Defaults
      Create Rules
        Bind Rules
          Rules Bound to Columns
          Rules Bound to User-Defined Datatypes
          Precedence of Rules
        Rules and NULL Values
        Unbind Rules
      Drop Rules
      Retrieve Information About Defaults and Rules
      Share Inline Defaults
        Create an Inline Shared Default
        Unbind a Shared Inline Default
        Limitations for Shared Inline Defaults
    Precomputed Result Sets
      Benefits of Precomputed Result Sets
      Configuring SAP ASE for Precomputed Result Sets
      Creating Precomputed Result Sets
      Identifying Precomputed Result Sets
      Refreshing Precomputed Result Sets
      Altering Precomputed Result Sets
      Dropping or Truncating Precomputed Result Sets
      Configuring Staleness
      Querying Precomputed Result Sets
      Rewriting Queries
      Replicating Precomputed Result Sets
      Restrictions for Precomputed Result Sets
    Batches and Control-of-Flow Language
      Rules Associated with Batches
        Examples of Using Batches
        Batches Submitted as Files
      Control-of-Flow Language Usage
        if...else
        case Expression
          case Expression for Alternative Representation
          case and Division by Zero
          rand Functions in case Expressions
          case Expression Results
          case Expressions and set ansinull
          case Expression Requires at Least one Non-Null Result
          Determining the Result Set
          case and Value Comparisons
          coalesce
          nullif
        begin...end
        while and break...continue
        declare and Local Variables
        goto
        return
        print
        raiserror
        Create Messages for print and raiserror
        waitfor
        Comments
          Slash-Asterisk Style Comments
          Double-Hyphen Style Comments
      Local Variables
        Local Variables and select Statements
        Local Variables and update Statements
        Local Variables and Subqueries
        Local Variables and while Loops and if…else Blocks
        Variables and Null Values
      Global Variables
        Transactions and Global Variables
          Check for Errors with @@error
          Check IDENTITY Values with @@identity
          Check the Transaction Nesting Level with @@trancount
          Check the Transaction State with @@transtate
          Check the Nesting Level with @@nestlevel
          Check the Status From the Last Fetch
    Transact-SQL Functions
      Built-In Functions
        System Functions
        String Functions
          Concatenating Expressions
            Concatenation Operators and LOB Locators
          Nest String Functions
          Limits on String Functions
        Text and Image Functions
          readtext on unitext Columns Usage
        Aggregate Functions
          Aggregate Functions Used with the group by Clause
          Aggregate Functions and Null Values
          Vector and Scalar Aggregates
          Aggregate Functions as Row Aggregates
        Statistical Aggregate Functions
          Formulas for Computing Standard Deviations
        Mathematical Functions
        Date Functions
        Datatype Conversion Functions
          convert Function Usage for Explicit Conversions
          Datatype Conversion Guidelines and Constraints
            Convert Character Data to a Noncharacter Type
            Convert from One Character Type to Another
            Convert Numbers to a Character Type
            Convert to or from unitext
            Rounding During Conversion To and From Money Types
            Convert Date and Time Information
            Convert Between Numeric Types
            Convert Between Binary and Integer Types
            Convert Between Binary and Numeric or Decimal Types
            Convert Image Columns to Binary Types
            Convert Other Types to bit
            Convert Hexadecimal Data
            Convert bigtime and bigdatetime Data
            Convert NULL Value
          Change the Date Format
          Conversion Error Handling
        Security Functions
        XML Functions
      User-Created Functions
    Stored Procedures
      Examples
      Permissions
      Performance
      Create and Execute Stored Procedures
        Deferred Name Resolution Usage
        Parameters
        Default Parameters
          Default Parameters Usage
          NULL as the Default Parameter
          Wildcard Characters in the Default Parameter
        Using Multiple Parameters
        LOB Datatypes in Stored Procedures
        Procedure Groups
        with recompile in create procedure
        with recompile in execute
        Nesting Procedures
        Temporary Tables in Stored Procedures
        Set Options in Stored Procedures
          Query Optimization Settings
          Maximum Number of Arguments
          Maximum Size for Expressions, Variables, and Arguments
        Execution of Stored Procedures
          Execute Procedures After a Time Delay
          Execute Procedures Remotely
          Execute a Procedure with execute as owner or execute as caller
            Example with execute as Omitted
            Example of Procedure with execute as
      Deferred Compilation in Stored Procedures
      Information Returned From Stored Procedures
        Return Status
          Reserved Return Status Values
          User-Generated Return Values
        Check Roles in Procedures
        Return Parameters
          Pass Values in Parameters
          The Output Keyword
      Restrictions Associated with Stored Procedures
        Qualify Names Inside Procedures
      Rename Stored Procedures
        Rename Objects Referenced by Procedures
      Stored Procedures as Security Mechanisms
      Dropping Stored Procedures
      System Procedures
        Execute System Procedures
        Permissions on System Procedures
        Types of System Procedures
        Other SAP ASE-Supplied Stored Procedures
      Get Information About Stored Procedures
        Get a Report with sp_help
        View the Source Text of a Procedure with sp_helptext
        Identify Dependent Objects with sp_depends
          Use sp_depends with deferred_name_resolution
        Identify Permissions with sp_helprotect
    Extended Stored Procedures Usage
      XP Server
        CIS RPC Mechanism
        sybesp_dll_version
      Dynamic Link Library Support
      Open Server API
      ESPs and Permissions
      ESPs and Performance
      Create Functions for ESPs
        Files for ESP Development
        Open Server Data Structures
        Open Server Return Codes
        Outline of a Simple ESP Function
        ESP Function Example
        Building the DLL
      Registering ESPs
        create procedure Usage
        sp_addextendedproc Usage
      Remove ESPs
        Renaming ESPs
      Execute ESPs
      System ESPs
      Get Information About ESPs
      ESP Exceptions and Messages
    Cursors: Accessing Data
      Types of Cursors
      Cursor Scope
      Cursor Scans and the Cursor Result Set
      Make Cursors Updatable
        Determine Which Columns Can Be Updated
      How SAP ASE Processes Cursors
      Monitor Cursor Statements
      declare cursor
        cursor_scrollability
        Cursor Sensitivity
        read_only Option
      Open Cursors
      Fetch Data Rows Using Cursors
        fetch Syntax
        into Clause Usage
        Check Cursor Status
        Get Multiple Rows With Each Fetch
        Check the Number of Rows Fetched
      Update and Delete Rows Using Cursors
        Update Cursor Result Set Rows
        Delete Cursor Result Set Rows
      Close and Deallocate Cursors
      Cursor Examples
      Cursors in Stored Procedures
      Cursors and Locking
        Cursor-Locking Options
      Transaction Support for Updatable Cursors
      Get Information About Cursors
      Browse Mode Versus Cursors
    Triggers: Enforce Referential Integrity
      Use Triggers Versus Integrity Constraints
      Create Triggers
        create trigger Syntax
      Use Triggers to Maintain Referential Integrity
        Test Data Modifications Against the Trigger Test Tables
        Insert Trigger Example
        Delete Trigger Examples
        Update Trigger Examples
      Multirow Considerations
        Insert Trigger Example Using Multiple Rows
        Delete Trigger Example Using Multiple Rows
        Update Trigger Example Using Multiple Rows
        Conditional Insert Trigger Example Using Multiple Rows
      Roll Back Triggers
      Global Login Triggers
      Nesting Triggers
        Trigger Self-Recursion
      Rules Associated with Triggers
        Triggers and Permissions
        Trigger Restrictions
        Implicit and Explicit Null Values
        Triggers and Performance
        set Commands in Triggers
        Renaming and triggers
      Disable Triggers
      Drop Triggers
      Multiple Triggers
        Changing the Order of When a Trigger Is Fired
        Order of Triggers in Merge Statements
        Transactional Behavior with Multiple Triggers
        Disabling and Reenabling Triggers
      Get Information About Triggers
        sp_help
        sp_helptext
        sp_depends
      instead of Triggers
        Inserted and Deleted Logical Tables
        Triggers and Transactions
        Nesting
        Recursion
        instead of insert Triggers
        instead of update Trigger
        instead of delete Trigger
        Searched and Positioned update and delete
        Get Information About instead of Triggers
    In-Row Off-Row LOB
      In-Row LOB Columns Compression
      Migrate Off-Row LOB Data to In-Row Storage
        In-Row LOB Columns and Bulk Copy
        Methods for Migrating Existing Data
          Set Up the mymsgs Example Table
          Migrate Using Update Statement
          Use reorg rebuild
          Migrate Using alter table with Data Copy
        Guidelines for Selecting the In-Row LOB Length
        Identifying In-Row LOB Length Selection
      Downgrading Tables Containing In-Row LOB Columns
    Transactions: Maintain Data Consistency and Recovery
      Transactions and Consistency
      Transactions and Recovery
      Transaction Usage
        Allow Data Definition Commands in Transactions
        System Procedures That Are Not Allowed in Transactions
        Begin and Commit Transactions
        Roll Back and Save Transactions
        Transaction States
        Nested Transactions
        Example of a Transaction
      Transaction Mode and Isolation Level
        Choose a Transaction Mode
          Transaction Modes and Nested Transactions
          Find the Status of the Current Transaction Mode
        Choose an Isolation Level
          Default Isolation Levels for SAP ASE and ANSI SQL
          Dirty Reads
          Repeatable Reads
          Find the Status of the Current Isolation Level
          Change the Isolation Level for a Query
          Isolation Level Precedences
          Cursors and Isolation Levels
          Stored Procedures and Isolation Levels
          Triggers and Isolation Levels
        Compliance with SQL Standards
        Use the Lock Table Command to Improve Performance
      Transactions in Stored Procedures and Triggers
        Errors and Transaction Rollbacks
        Transaction Modes and Stored Procedures
          Run System Procedures in Chained Mode
          Set Transaction Modes for Stored Procedures
      Use Cursors in Transactions
      Issues to Consider When Using Transactions
      Backup and Recovery of Transactions
    Locking Commands and Options
      wait/nowait Option of the Lock Table Command
      Session-Level Lock-Wait Limit
      Server-Wide Lock-Wait Limit
      Information on the Number of Lock-Wait Timeouts
      Readpast Locking for Queue Processing
        Incompatible Locks During readpast Queries
        Allpages-Locked Tables and readpast Queries
        Effects of Isolation Levels Select Queries with readpast
        Data Modification Commands with readpast and Isolation Levels
        text, unitext, and image columns and readpast
    The pubs2 Database
      Tables in the pubs2 Database
        publishers Table
        authors Table
        titles Table
        titleauthor Table
        salesdetail Table
        sales Table
        stores Table
        roysched Table
        discounts Table
        blurbs Table
        au_pix Table
      Diagram of the pubs2 Database
    The pubs3 Database
      Tables in the pubs3 Database
        publishers Table
        authors Table
        titles Table
        titleauthor Table
        salesdetail Table
        sales Table
        stores Table
        store_employees Table
        roysched Table
        discounts Table
        blurbs Table
      Diagram of the pubs3 Database
  System Administration Guide 16.0: Volume 1
    Overview of System Administration
      Roles Required for System Administration Tasks
        Database Owner
        Database Object Owner
      Performing System Administration Tasks
      System Tables
        Querying the System Tables
        Keys in System Tables
        Updating System Tables
      System Procedures
        Using System Procedures
        System Procedure Tables
        Creating Stored Procedures
      System Extended Stored Procedures
        Creating System ESPs
      Logging Error Messages
      Connecting to SAP ASE
        The interfaces File
        Directory Services
        LDAP as a Directory Service
          Multiple Directory Services
          LDAP Directory Services Versus the SAP Interfaces File
            LDAP Performance
      Security Features Available in SAP ASE
    System and Optional Databases
      Overview of System Databases
      The master Database
        Controlling Object Creation in the master Database
        Backing Up Master and Keeping Copies of System Tables
      model Database
      sybsystemprocs Database
      tempdb database
        Creating Temporary Tables
      sybsecurity Database
      sybsystemdb Database
      sybmgmtdb Database
      pubs2 and pubs3 Sample Databases
        Maintaining the Sample Databases
        pubs2 Image Data
      dbccdb Database
      sybdiag Database
      Determining the Version of the Installation Scripts
    System Administration for Beginners
      Logical Page Sizes
      Using “Test” Servers
        Planning Resources
        Achieving Performance Goals
      Considerations When Installing SAP Products
      Allocating Physical Resources
        Dedicated Versus Shared Servers
        Decision-Support and OLTP Applications
        Advance Resource Planning
        Operating System Configuration
      Backup and Recovery
        Keep Up-To-Date Backups of the master Database
          Keep Offline Copies of System Tables
        Automating Backup Procedures
        Verify Data Consistency Before Backing Up a Database
        Monitor the Log Size
      Ongoing Maintenance and Troubleshooting
        Starting and Stopping SAP ASE
        Viewing and Pruning the Error Log
      Keeping Records
        Contact Information
        Configuration Information
        Maintenance Schedules
        System Information
        Disaster Recovery Plan
      Additional Resources
    Managing and Monitoring SAP ASE
      SAP Control Center for SAP ASE
      Configuration History Tracking
        Configuring SAP ASE to Track Configuration Changes
        Changes Captured
        Querying ch_events
    Setting Configuration Parameters
      Modifying Configuration Parameters
      Required Roles for Modifying Configuration Parameters
      Unit Specification Using sp_configure
      Global Versus Session Settings
      Getting Help Information on Configuration Parameters
      Using sp_configure
        sp_configure Syntax Elements
        Issue sp_configure with the Configuration File
          Configuration File Naming Recommendations
          Read or Write the Configuration File with sp_configure
          Edit the Configuration File
            Permissions for Configuration Files
            Backing Up Configuration Files
            Verify the Name of the Configuration File Currently in Use
          Start SAP ASE Using a Configuration File
            Configuration File Errors
        The Parameter Hierarchy
        User-Defined Subsets of the Parameter Hierarchy: Display Levels
          The Effect of the Display Level on sp_configure Output
        Performance Tuning with sp_configure and sp_sysmon
        Using Configuration Parameters in a Clustered Environment
      sp_configure Output
      sysconfigures and syscurconfigs Tables
        Example syscurconfigs and sysconfigures Query
      Named Cache Configuration Parameter Group
      Dump Configuration Parameter Group
      Configuration Parameters
        Alphabetical Listing of Configuration Parameters
          abstract plan cache
          abstract plan dump
          abstract plan load
          abstract plan replace
          abstract plan sharing
          additional network memory
          aggresive task stealing
          allocate max shared memory
          allow backward scans
          allow nested triggers
          allow procedure grouping
          allow remote access
          allow resource limits
          allow sendmsg
          allow sql server async i/o
          allow updates to system tables
          average cap size
          audit queue size
          auditing
          automatic cluster takeover
          builtin date strings
          caps per ccb
          capture compression statistics
          capture missing statistics
          check password for digit
          CIPC large message pool size
          CIPC regular message pool size
          cis bulk insert array size
          cis bulk insert batch size
          cis connect timeout
          cis cursor rows
          cis idle connection timeout
          cis packet size
          cis rpc handling
          cluster heartbeat interval
          cluster heartbeat retries
          cluster redundancy level
          cluster vote timeout
          column default cache size
          compression info pool size
          compression memory size
          configuration file
          cost of a logical io
          cost of a physical io
          cost of a cpu unit
          cpu accounting flush interval
          cpu grace time
          current audit table
          deadlock checking period
          deadlock pipe active
          deadlock pipe max messages
          deadlock retries
          default character set id
          default database size
          default exp_row_size percent
          default fill factor percent
          default language id
          default network packet size
            Requesting a Larger Packet Size at Login
          default sortorder id
          default unicode sortorder
          default XML sortorder
          deferred name resolution
          disable character set conversions
          disable disk mirroring
          disable jsagent core dump
          disable varbinary truncation
          disk i/o structures
          DMA object pool size
          dtm detach timeout period
          dtm lock timeout period
          dump history filename
          dump on conditions
          dynamic allocation on demand
          dynamic SQL plan pinning
          early row send increment
          enable async database init
          enable backupserver HA
          enable cis
          enable compression
          enable concurrent dump tran
          enable console logging
          enable DTM
          enforce dump configuration
          enable dump history
          enable encrypted columns
          enable enterprise java beans
          enable file access
          enable full-text search
          enable functionality group
          enable inline default sharing
          enable HA
          enable housekeeper GC
          enable hp posix async i/o
          enable HugePages
          enable i/o fencing
          enable ISM
          enable java
          enable job scheduler
          enable js restart logging
          enable large chunk elc
          enable large pool for load
          enable ldap user auth
          enable literal autoparam
          engine local cache percent
          enable logins during recovery
          enable merge join
          enable metrics capture
          enable monitoring
          enable pam user auth
          enable pci
          enable permissive unicode
          enable plan sharing
          enable predicated privileges
          enable query tuning mem limit
          enable query tuning time limit
          enable rapidlog
          enable real time messaging
          enable rep agent threads
          enable row level access control
          enable semantic partitioning
          enable sort-merge join and JTC
          enable sql debugger
          enable ssl
          enable stmt cache monitoring
          enable surrogate processing
          enable unicode conversion
          enable unicode normalization
          enable utility lvl 0 scan wait
          enable webservices
          enable xact coordination
          enable xml
          engine memory log size
          errorlog pipe active
          errorlog pipe max messages
          esp execution priority
          esp execution stacksize
          esp unload dll
          event buffers per engine
          event log computer name (Windows only)
          event logging
          executable codesize + overhead
          extended cache size
          FIPS login password encryption
          global async prefetch limit
          global cache partition number
          heap memory per user
          histogram tuning factor
          housekeeper free write percent
          i/o accounting flush interval
          i/o batch size
          i/o polling process count
          identity burning set factor
          identity grab size
          identity reservation size
          idle migration timeout
          job scheduler interval
          job scheduler tasks
          js heartbeat interval
          js job output width
          kernel mode
          kernel resource memory
          large allocation auto tune
          license information
          lock address spinlock ratio
          lock hashtable size
          lock scheme
          lock shared memory
          lock spinlock ratio
          lock table spinlock ratio
          lock timeout pipe active
          lock timeout pipe max messages
          lock wait period
          log audit logon failure
          log audit logon success
          max async i/os per engine
            On the Linux Platform
          max async i/os per server
          max buffers per lava operator
            Differences Between number of sort buffers and max data buffers per lava sort
          max cis remote connections
          max concurrently recovered db
          max js restart attempts
          max memory
            If SAP ASE Cannot Start
          max native threads per engine
          max nesting level
          max network packet size
            Choosing Packet Sizes
          max network peek depth
          max number network listeners
          max online engines
          max online Q engines
          max parallel degree
          max pci slots
          max query parallel degree
          max repartition degree
          max resource granularity
          max scan parallel degree
          max SQL text monitored
          max transfer history
          max utility parallel degree
          maximum dump conditions
          maximum failed logins
          maximum job output
          memory alignment boundary
          memory dump compression level
          memory per worker process
          messaging memory
          metrics elap max
          metrics exec max
          metrics lio max
          metrics pio max
          min pages for parallel scan
          minimum password length
          mnc_full_index_filter
          msg confidentiality reqd
          msg integrity reqd
          net password encryption reqd
          network polling mode
            In-Line Network Polling
          number of alarms
          number of aux scan descriptors
            Monitoring and Estimating Scan Descriptor Usage
          number of backup connections
          number of ccbs
          number of checkpoint tasks
          number of devices
            Setting the number of devices on UNIX
          number of disk tasks
          number of dtx participants
            Optimizing the Number of DTX Participants for Your System
          number of dump threads
          number of early send rows
          number of engines at startup
          number of histogram steps
          number of index trips
          number of java sockets
          number of large i/o buffers
          number of locks
          number of mailboxes
          number of messages
          number of network tasks
          number of oam trips
          number of open databases
            Optimizing the number of open databases
          number of open indexes
            Optimizing number of open indexes
          number of open objects
            Optimizing number of open objects
          number of open partitions
          number of pre-allocated extents
            Using a Value of 32 for the number of pre-allocated extents
          number of Q engines at startup
          number of remote connections
          number of remote logins
          number of remote sites
          number of sort buffers
          number of user connections
          number of worker processes
          o/s file descriptors
          object lockwait timing
          open index hash spinlock ratio
          open index spinlock ratio
          open object spinlock ratio
          optimization goal
          optimize temp table resolution
          optimization timeout limit
          optimizer level
          page lock promotion HWM
          page lock promotion LWM
          page lock promotion PCT
          page utilization percent
          partition groups
          partition spinlock ratio
          pci memory size
          per object statistics active
          percent database for history
          percent database for output
          percent history free
          percent output free
          performance monitoring option
          permission cache entries
          plan text pipe active
          plan text pipe max messages
          print deadlock information
          print recovery information
          procedure cache size
          procedure deferred compilation
          process wait events
          prod-consumer overlap factor
          quorum heartbeat interval
          quorum heartbeat retries
          quoted identifier enhancements
          rapidlog buffer size
          rapidlog max files
          read committed with lock
          recovery interval in minutes
          recovery prefetch size
          remote server pre-read packets
          restricted decrypt permission
          row lock promotion HWM
          row lock promotion LWM
          row lock promotion PCT
          rtm thread idle wait period
          runnable process search count
            runnable process search count versus idle timeout
          sampling percent
          secure default login
          select for update
          select on syscomments.text
          send doneinproc tokens
          session migration timeout
          session tempdb log cache size
          shared memory starting address
          size of auto identity column
          size of global fixed heap
          size of process object heap
          size of shared class heap
          size of unilib cache
          solaris async i/o mode
          sproc optimize timeout limit
          SQL batch capture
          SQL Perfmon Integration
          sql server clock tick length
          sql text pipe active
          sql text pipe max messages
          stack guard size
          stack size
          start mail session
          start xp server during boot
          startup delay
          statement cache size
          statement pipe active
          statement pipe max messages
          statement statistics active
          streamlined dynamic SQL
          strict dtm enforcement
          suppress js max task message
          suspend audit when device full
          syb_sendmsg port number
          sysstatistics flush interval
          systemwide password expiration
          tape retention in days
          tcp no delay
          text prefetch size
          threshold event max messages
          threshold event monitoring
          time slice
          total data cache size
          total logical memory
          total physical memory
          transfer utility memory size
          txn to pss ratio
            Optimizing the txn to pss ratio for your system
          unified login required
          update statistics hashing
          upgrade version
          use security services
          user log cache queue size
          user log cache size
          user log cache spinlock ratio
            utility statistics hashing
          wait event timing
          wait on uncommitted insert
          workload manager cache size
          xact coordination interval
          xp_cmdshell context
    Disk Resource Issues
      Device Allocation and Object Placement
      Commands for Managing Disk Resources
      Considerations in Storage Management Decisions
        Recovery
        Performance
      Status and Defaults at Installation
      System Tables That Manage Storage
        The sysdevices Table
        The sysusages Table
        The syssegments Table
        The sysindexes Table
        The syspartitions Table
    Managing Remote Servers
      Adding Remote Logins
        Map Users’ Server IDs
        Map Remote Logins to Particular Local Names
        Map All Remote Logins to One Local Name
        Keeping Remote Login Names for Local Servers
        Example of Remote User Login Mapping
      Password Checking for Remote Users
        Effects of Using the Untrusted Mode
      Getting Information About Remote Logins
      Configuration Parameters for Remote Logins
    Initializing Database Devices
      Using the disk init command
      Getting Information about Devices
      Dropping devices
      Designating Default Devices
        Choosing Default and Nondefault Devices
      Increasing the Size of Devices with disk resize
        Insufficient Disk Space
    Setting Database Options
      Database Option Descriptions
      Viewing the Options on a Database
      Displaying Currently Set Switches with sysoptions
    Configuring Character Sets, Sort Orders, and Languages
      Advantages of Internationalized Systems
        A Sample Internationalized System
        Elements of an Internationalized System
      Selecting the Character Set for Your Server
        Unicode
          Configuration Parameters
          Functions
          Using unichar Columns
          Using unitext
          Open Client Interoperability
          Java Interoperability
        Selecting the Server Default Character Set
      Selecting the Sort Order
        Different Types of Sort Orders
        Selecting the Default Sort Order
          Chinese Pinyin Sort Order
          Selecting Case-Insensitive Sort Orders for Chinese and Japanese Character Sets
          Selecting the Default Unicode Sort Order
      Select a Language for System Messages
      A Spanish-Version Server
      A US-based company in Japan
      A Japan-Based Company with Multinational Clients
      Changing the character set, sort order, or message language
        Changing the default character set
        Changing the sort order with a resources file
        Change the Default Sort Order
        Reconfiguring the Character Set, Sort Order, or Message Language
        Example: Converting a Unicode Database to UTF-8
          Migrating Selected Columns to unichar
          Migrating to or from unitext
        Before Changing the Character Set or Sort Order
        Set the User’s Default Language
        Manage Suspect Partitions
      Installing Date Strings for Unsupported Languages
        Server Versus Client Date Interpretation
      Internationalization and localization files
        Character sets directory structure
        Types of localization files
        Software Messages Directory Structure
        Global variables for Languages and Character Sets
    Configuring Client/Server Character Set Conversions
      Supported Character Set Conversions
        Conversion for Native Character Sets
        Conversion in a Unicode System
        SAP ASE Direct Conversions
        Unicode Conversions
          Allowing Unicode noncharacters
      Choosing a Conversion Type
      Enabling and Disabling Character Set Conversion
        Characters That Cannot Be Converted
      Error handling in character set conversion
      Conversions and Changes to Data Lengths
      Specify the Character Set for Utility Programs
        Display and file character set command line options
    Diagnosing System Problems
      How SAP ASE Uses Error Messages
        Error Log Format
        Error Messages and Message Numbers
        Variables in Error Message Text
      SAP ASE error logging
        Severity Levels
        Severity Levels 10 – 18
          Level 10: Status Information
          Level 11: Specified Database Object Not Found
          Level 12: Wrong Datatype Encountered
          Level 13: User Transaction Syntax Error
          Level 14: Insufficient Permission to Execute Command
          Level 15: Syntax Error in SQL Statement
          Level 16: Miscellaneous User Error
          Level 17: Insufficient Resources
          Level 18: Nonfatal Internal Error Detected
        Severity Levels 19 – 26
          Level 19: SAP ASE Fatal Error in Resource
          Level 20: SAP ASE Fatal Error in Current Process
          Level 21: SAP ASE Fatal Error in Database Processes
          Level 22: SAP ASE Fatal Error: Table Integrity Suspect
          Level 23: Fatal Error: Database Integrity Suspect
          Level 24: Hardware Error or System Table Corruption
          Level 25: SAP ASE Internal Error
          Level 26: Rule Error
      Backup Server Error Logging
      Killing Processes
        Using kill with statusonly
        Using sp_lock to Examine Blocking Processes
      Using Shared Memory Dumps
        Configuring Shared Memory Dump Conditions
        System-Wide Default Settings
      Housekeeper functionality
        Housekeeper wash
        Housekeeper chores
        Housekeeper Garbage Collection
          Configure SAP ASE Priority Level
        Configuring enable housekeeper GC
          Using The reorg Command
      Shutting Down Servers
        Shutting Down SAP ASE
        Shutting down a Backup Server
          Using nowait on a Backup Server
      Learning about known problems
  System Administration Guide 16.0: Volume 2
    Limiting Access to Server Resources
      Resource Limits
      Plan Resource Limits
      Enable Resource Limits
      Define Time Ranges
        Determe the Time Ranges You Need
        Modifying a Named Time Range
        Dropping a Named Time Range
        When Do Time Range Changes Take Effect?
      Identify Users and Limits
        Identifying Heavy-Usage Users
        Identifying Heavy-Usage Applications
        Choosing a Limit Type
        Determining Time of Enforcement
        Determining the Scope of Resource Limits
      Understanding Limit Types
        Limiting I/O Cost
          Identify I/O Costs
          Calculate the I/O Cost of a Cursor
          Scope of the io_cost Limit Type
        Limiting Elapsed Time
          Scope of the elapsed_time Limit Type
        Limiting the Size of the Result Set
          Scope of the row_count Limit Type
        Setting Limits for tempdb Space Usage
        Limiting Idle Time
      Creating a Resource Limit
        Resource Limit Examples
      Getting Information on Existing Limits
      Modifying Resource Limits
      Dropping Resource Limits
      Resource Limit Precedence
    Mirroring Database Devices
      Determining Which Devices to Mirror
        Mirroring Using Minimal Physical Disk Space
        Mirroring for Nonstop Recovery
      Conditions That Do Not Disable Mirroring
      Disk Mirroring Commands
        Initializing Mirrors
        Unmirroring a Device
          Effects on System Tables
        Restarting Mirrors
        waitfor mirrorexit
        Mirroring the Master Device
        Getting Information About Devices and Mirrors
      Disk Mirroring Tutorial
      Disk Resizing and Mirroring
    Configuring Memory
      How SAP ASE Allocates Memory
        Disk Space Allocation
        How SAP ASE Allocates Buffer Pools
        Heap Memory
          Calculating Heap Memory
      Memory Management in SAP ASE
      Determining the Amount of Memory SAP ASE Needs
        Determine the SAP ASE Memory Configuration
        If You Are Upgrading
      Determining the Amount of Memory SAP ASE Can Use
      Configuration Parameters That Affect Memory Allocation
      Dynamically Allocating Memory
        If SAP ASE Cannot Start
        Dynamically Decreasing Memory Configuration Parameters
      Configuring Thread Pools
        Determining the Total Number of Threads
        Tuning the syb_blocking_pool
      System Procedures for Configuring Memory
        Viewing the Configuration Parameters for Memory
          Memory Available for Dynamic Growth
        Using sp_helpconfig
        Using sp_monitorconfig
      Configuration Parameters That Control SAP ASE Memory
        SAP ASE Executable Code Size
        Data and Procedure Caches
          Determining the Procedure Cache Size
          Determining the Default Data Cache Size
          Monitoring Cache Space
          Modify the ELC Size
        Kernel Resource Memory
        User Connections
        Open Databases, Open Indexes, and Open Objects
        Number of Locks
        Database Devices and Disk I/O Structures
      Parameters That Use Memory
        Parallel Processing
        Remote Servers
        Referential Integrity
        Parameters That Affect Memory
      The Statement Cache
        Setting the Statement Cache
          Performing Ad Hoc Query Processing
            Statement Matching Criteria
            Caching Conditions
            Statement Cache Sizing
          Monitoring the Statement Cache
          Aggregating Metrics from Syntactically Similar Queries
          Purging the Statement Cache
          Printing Statement Summaries
          Displaying the SQL Plan for Cached Statements
    Configuring Data Caches
      The SAP ASE Data Cache
      Cache Configuration Commands and System Procedures
      Viewing Information About Data Caches
      Configuring Data Caches
        Creating a New Cache
          Insufficient Space for New Cache
        Adding Memory to an Existing Named Cache
        Decreasing the Size of a Cache
        Deleting a Cache
        Explicitly Configuring the Default Cache
        Changing the Cache Type
        Improving the Recovery Log Scan During load database and load tran
      Configuring a Cache Replacement Policy
      Dividing a Data Cache into Memory Pools
        Matching Log I/O Size for Log Caches
      Binding Objects to Caches
      Getting Information About Cache Bindings
        Checking Cache Overhead
        Effects of Overhead on Total Cache Space
      Dropping Cache Bindings
      Changing the Wash Area for a Memory Pool
        When the Wash Area Is Too Small
        When the Wash Area is Too Large
        Setting the Housekeeper to Avoid Washes for Cache
      Changing the Asynchronous Prefetch Limit for a Pool
      Changing the Size of Memory Pools
        Moving Space from the Memory Pool
        Moving Space from Other Memory Pools
      Adding Cache Partitions to Reduce Spinlock
      Dropping a Memory Pool
        When Pools Cannot Be Dropped Due to Page Use
      Cache Binding Effects on Memory and Query Plans
      Configuring Data Caches Using the Configuration File
        Cache and Pool Entries in the Configuration File
        Cache Configuration Guidelines
          Configuration File Errors
    Managing Multiprocessor Servers
      SAP ASE Kernels
      Target Architecture
      Kernel Modes
        Switching Kernel Modes
      Tasks
        Using Threads to Run Tasks
      Configuring an SMP Environment
        Thread Pools
          Dynamic Thread Assignment
        Managing Engines
          Configuring Engines in Process Mode
          Configuring Engines in Threaded Mode
          Choosing the Right Number of Engines
        Starting and Stopping Engines
          Monitoring Engine Status
          Starting and Stopping Engines with sp_engine
            Relationship Between Network Connections and Engines
            Logical Process Management and dbcc engine(offline)
        Managing User Connections
        Configuration Parameters That Affect SMP Systems
          Configuring Spinlock Ratio Parameters
            Round-Robin Assignment
            Sequential Assignment
    Creating and Managing User Databases
      Permissions for Managing User Databases
      Using the create database Command
      Assigning Space and Devices to Databases
        Default Database Size and Devices
        Estimating the Required Space
      Placing a Transaction Log on a Separate Device
        Estimating the Transaction Log Size
        Default Log Size and Device
        Moving the Transaction Log to Another Device
      Shrinking Log Space
        Using dump and load database When Shrinking Log Space
          Shrinking a Log Before a dump and load database
        Using dump and load transaction When Shrinking Log Space
          Shrinking Log Space
      Calculating the Transaction Log Growth Rate
      Database Recovery with the for load Parameter
      Using the with override Option with create database
      Changing Database Ownership
      Altering Databases
        Using alter database
      Using the drop database Command
      System Tables That Manage Space Allocation
        The sysusages Table
          The segmap Column
        The lstart, size, and vstart Columns
      SAP ASE Support for Replication by Column Value
      Getting Information about Database Storage
        Using sp_helpdb to Find Database Device Names and Options
        Checking the Amount of Space Used
          Checking Space Used in a Database
          Checking Summary Information for a Table
          Checking Information for a Table and Its Indexes
        Querying System Table for Space Usage Information
    Database Mount and Unmount
      Manifest File
      Operations That Copy and Move Databases
      Performance Considerations
      Device Verification
      Mounting and Unmounting Databases
        Unmounting a Database
        Mounting a Database
        Moving Databases from One SAP ASE to Another
        System Restrictions
        quiesce database Extension
    Distributed Transaction Management
      Configuration Considerations
        Behavior for Transaction Manager-Coordinated Transactions
        Enhanced Transaction Manager for SAP ASE Versions 15.0.3 or Later
        RPC and CIS Transactions
        SYB2PC Transactions
      Enabling DTM Features
        Configuring Transaction Resources
          Calculating the Number of Required Transaction Descriptors
          Setting the Number of Transaction Descriptors
      Using SAP ASE Coordination Services
        Overview of Transaction Coordination Services
          Hierarchical Transaction Coordination
          X/Open XA-Compliant Behavior in DTP Environments
        Requirements and Behavior
        Ensuring Sufficient Resources for Updates
          number of dtx participants Parameter
          Optimizing the number of dtx participants
        Using Transaction Coordination Services on Remote Servers
          Set the strict dtm enforcement Parameter
        Monitoring Coordinated Transactions and Participants
      DTM Administration and Troubleshooting
        Transactions and Threads of Control
          Lock Manager Support for Detached Transactions
        Getting Information About Distributed Transactions
          Transaction Identification in systransactions
            Transaction Keys
          Viewing active transactions with sp_transactions
            Identify Local, Remote, and External Transactions
            Identify the Transaction Coordinator
            View the Transaction Thread of Control
            Understanding Transaction State Information
            Limiting sp_transactions Output to Specific States
            Transaction Failover Information
          Determining the Commit Node and gtrid with sp_transactions
            Commit and Parent Nodes
            Global Transaction ID
        Executing External Transactions
        Crash Recovery Procedures for Distributed Transactions
          Transactions Coordinated with MSDTC During Crash Recovery
          Transactions Coordinated by SAP ASE or X/Open XA During Crash Recovery
          Transactions Coordinated with SYB2PC During Crash Recovery
        Heuristically Completing Transactions
          Completing Prepared Transactions
            Maintaining a Transaction's Commit Status
            Manually Clearing the Commit Status
          Completing Transactions That Are Not Prepared
          Determining the Commit Status for SAP ASE Transactions
        Troubleshooting for Transactions Coordinated by External Transaction Managers
          SAP ASE Implicit Rollback in External Transactions
    Support for OData
      OData Server Architecture
      OData Server Limitations
        Unsupported OData Protocol Features
      Security Considerations for OData Server
      Configuring OData Server
      Setting Up an HTTP Server for OData
      Create an OData Producer Service Model
      OData Server Sample Files
      Starting and Stopping OData Server
    Creating and Using Segments
      System-Defined Segments
      Segment Usage in SAP ASE
        Controlling Space Usage
        Use Segments to Allocate Database Objects
          Separating Tables, Indexes, and Logs
          Splitting Tables
        Moving a Table to Another Device
      Creating Segments
      Changing the Scope of Segments
        Extending the Scope of Segments
          Automatically Extending the Scope of a Segment
        Reducing the Scope of a Segment
      Assigning Database Objects to Segments
        Creating New Objects on Segments
        Placing Existing Objects on Segments
        Placing Text Pages on a Separate Device
        Creating Clustered Indexes on Segments
      Dropping Segments
      Getting Information About Segments
        sp_helpsegment
        sp_helpdb
        sp_help and sp_helpindex
      Segments and System Tables
      A Segment Tutorial
    Using the reorg Command
      reorg Command and Its Parameters
        Running reorg rebuild Concurrently
        Using the optdiag Utility to Assess the Need for a reorg
      Moving Forwarded Rows to Home Pages
        Use reorg compact to Remove Row Forwarding
      Reclaiming Unused Space from Deletions and Updates
        Reclaming Space Without the reorg Command
      Reclaiming Unused Space and Undoing Row Forwarding
      Rebuilding a Table
        Prerequisites for Running reorg rebuild
          Changing Space Management Settings Before Using reorg rebuild
      Using the reorg rebuild Command on Indexes
        Rebuilding Indexes with reorg rebuild index_name partition_name
        Space Requirements for Rebuilding an Index
        Status Messages
      resume and time Options for Reorganizing Large Tables
      Incremental Reorganization
        Checking the Reorganization Status
        Clearing reorg defrag Information from sysattributes
        Logging Behavior
    Checking Database Consistency
      Page and Object Allocation
        Understanding the Object Allocation Map (OAM)
        Understanding Page Linkage
      dbcc Checks
        dbcc Command Output
      Checking Database and Table Consistency
        dbcc checkstorage
          Understanding the dbcc checkstorage Operation
          Performance and Scalability
        dbcc checktable
        dbcc checkindex
        dbcc checkdb
      Checking Page Allocation
        dbcc checkalloc
        dbcc indexalloc
        dbcc tablealloc
        dbcc textalloc
      Correcting Allocation Errors Using the fix | nofix Options
      Generate Reports with dbcc tablealloc and dbcc indexalloc
      Checking Consistency of System Tables
      Strategies for Using Consistency Checking Commands
        Using Large I/O and Asynchronous Prefetch
        Scheduling Database Maintenance at Your Site
          Database Use
          Backup Schedule
          Size of Tables and Importance of Data
        Errors Generated by Database Consistency Problems
        Reporting on Aborted checkstorage and checkverify Operations
          Aborting with Error 100032
        Comparison of Soft and Hard Faults
          Soft Faults
          Hard Faults
      Verifying Faults with dbcc checkverify
        Scheduling dbcc checkverify
        Executing dbcc checkverify
      Preparing to Use dbcc checkstorage
        Planning Resources
          Planning Workspace Size
            Number of Concurrent Workspaces
            Automatic Workspace Expansion
        Configuring Worker Processes
        Setting a Named Cache for dbcc
        Configuring an 8-page I/O Buffer Pool
        Disk Space for dbccdb
        Segments for Workspaces
        Creating the dbccdb Database
      Updating the dbcc_config Table
        Viewing the Current Configuration Values
        Default Configuration Values
        Deleting Configuration Values
      dbccdb Maintenance Tasks
        Reevaluating and Updating the dbccdb Configuration
        Cleaning Up dbccdb
        Performing Consistency Checks on dbccdb
      Generating Reports from dbccdb
        Reporting a Summary of dbcc checkstorage Operations
      Upgrading Compiled Objects with dbcc upgrade_object
        Finding Compiled Object Errors Before Production
          Reserved Word Errors
          Missing, Truncated, or Corrupted Source Text
          Temporary Table References
          Resolving select * Potential Problem Areas
        Using Database Dumps in Upgrades
          Upgrading Compiled Objects in Database Dumps
    Developing a Backup and Recovery Plan
      Tracking Database Changes
        Getting Information About the Transaction Log
        Determining When Log Records Are Committed
          Changes to Logging Behavior
          Risks of Using delayed_commit
          Enabling set delayed_commit
        Designating Responsibility for Backups
      Checkpoints: Synchronizing a Database and Its Log
        Setting the Recovery Interval
        Automatic Checkpoint Procedure
        Truncating the Log After Automatic Checkpoints
        Free Checkpoints
        Manually Requesting a Checkpoint
      Automatic Recovery After a System Failure or Shutdown
      Fast Recovery
        SAP ASE Start-up Sequence
        Bringing Engines Back Online
        Parallel Recovery
        Database Recovery
        Specifying the Recovery Order
          Changing or Deleting the Recovery Position of a Database
          Listing the User-Assigned Recovery Order of Databases
        Parallel Checkpoints
        Recovery State
        Tuning for Fast Recovery
      The sybdumptran Utility
      Fault Isolation During Recovery
        Persistence of Offline Pages
        Configuring Recovery Fault Isolation
          Isolating Suspect Pages
          Raising the Number of Suspect Pages Allowed
        Getting Information About Offline Databases and Pages
        Bringing Offline Pages Online
        Index-Level Fault Isolation for Data-Only-Locked Tables
        Side Effects of Offline Pages
        Recovery Strategies Using Recovery Fault Isolation
          Reload Strategy
          Repair Strategy
        Assessing the Extent of Corruption
      Using the dump and load Commands
        dump database: Making Routine Database Dumps
        dump transaction: Making Routine Transaction Log Dumps
        dump tran with no_truncate: Copying the Log After Device Failure
        load database: Restoring the Entire Database
        load transaction: Applying Changes to the Database
        online database: Making the Database Available to Users
        Dumping and Loading Databases Across Platforms
          Dumping a Database
          Loading a Database
        Restrictions for Dumping and Loading Databases and Transactions
        Improving Recovery Prefetch
        Performance Notes
        Moving a Database to Another SAP ASE
        Upgrading a User Database
        Using the Special Load Options to Identify Dump Files
        Restoring a Database from Backups
      Suspending and Resuming Updates to Databases
        Guidelines for using quiesce database
        Maintaining Server Roles in a Primary and Secondary Relationship
        Starting the Secondary Server with the -q Option
        “in quiesce” Database Log Record Value Updated
        Updating the Dump Sequence Number
        Backing up Primary Devices with quiesce database
          Recovery of Databases for Warm Standby Method
        Making Archived Copies During the Quiescent State
      The mount and unmount Commands
      Using Backup Server for Backup and Recovery
        Requirements for Communicating with Backup Server
        Mounting a New Volume
        Starting and Stopping Backup Server
        Configuring Your Server for Remote Access
        Choosing Backup Media
          Protecting Backup Tapes from Being Overwritten
          Dumping to Files or Disks
      Creating Logical Device Names for Local Dump Devices
        Adding a Backup Device
      Scheduling backups of user databases
        Other Times to Back Up a Database
      Scheduling Backups of master
        Dump the master Database After Each Change
        Save Scripts and System Tables
        Truncate the master Database Transaction Log
        Avoid Volume Changes and Recovery
      Scheduling Backups of the model Database
        Truncate the model Database’s Transaction Log
      Schedule Backups of the sybsystemprocs Database
      Configuring SAP ASE for Simultaneous Loads
      Gather Backup Statistics
    Backing Up and Restoring User Databases
      Specifying the Database and Dump Device
        Rules for Specifying Database Names
        Rules for Specifying Dump Devices
        Tape Device Determination by Backup Server
          Tape Device Configuration File
      Compressing a Dump
        Backup Server Dump Files and Compressed Dumps
        Loading Compressed Dumps
        Cyclic Redundancy Checks for dump database
      Dump History File
      Backups for the Dump Configuration Files
      Performing Cumulative Dumps
        Dump and Load Sequences
        Partially Logged Operations and Cumulative Dumps
        Restrictions
      Specifying a Remote Backup Server
      Remote Dump Host Control
      Specifying Tape Density, Block Size, and Capacity
        Overriding the Default Density
        Overriding the Default Block Size
          Specifying a Larger Block Size Value
        Specifying Tape Capacity for Dump Commands
        Nonrewinding Tape Functionality for Backup Server
          Tape Operations
          Dump Version Compatibility
      Apply Source Database Attributes to the Target Database
      Generate SQL for a Different Target Database
      Specifying the Volume Name
        Loading from a Multifile Volume
      Identifying a Dump
      Improving Dump or Load Performance
        Compatibility with Prior Versions
        Reducing load database Time
        Concurrent dump database and dump transaction Commands
          Configure SAP ASE to Run Concurrent Dumps
        Labels Stored in Integer Format
        Configure Local and Remote Backup Servers
          Setting Shared Memory Usage
          Configuring Shared Memory Dumps
          Setting the Maximum Number of Stripes
          Setting the Maximum Number of Network Connections
          Setting the Maximum Number of Service Threads
      Automatic Physical Database Rearrangement on Load
      Specify Additional Dump Devices with the stripe on Clause
        Dumps to, and Loads from, Multiple Devices
        Using Fewer Devices to Load Than to Dump
        Specifying the Characteristics of Individual Devices
      Tape Handling Options
        Prevent Dump Files from Being Overwritten
        Reinitializing a Volume Before a Dump
      Dumping and Loading Databases with Password Protection
      Overriding the Default Message Destination
      Bringing Databases Online with standby_access
      Getting Information About Dump Files
        Requesting Dump Header Information
        Determining the Database, Device, File Name, and Date
      Copying the Log After a Device Failure
      Responding to Volume Change Requests
        Volume Change Prompts for Dumps
        Volume Change Prompts for Loads
      Recovering a Database: Step-By-Step Instructions
        Getting a Current Dump of the Transaction Log
        Examining the Space Usage
        Dropping the Databases
        Re-creating the Databases
        Loading the Database
        Loading the Transaction Logs
          Loading a Transaction Log to a Point in Time
        Bringing the Databases Online
          Replicated Databases
      Loading Database Dumps from Older Versions
        Upgrading a Dump to the Current Version of SAP ASE
        The Database Offline Status Bit
        Version Identifiers and Automatic Upgrade
      Cache Bindings and Loading Databases
        Databases and Cache Bindings
        Database Objects and Cache Bindings
          Checking on Cache Bindings
      Cross-Database Constraints and Loading Databases
    Restoring the System Databases
      Recovering the master Database
        Recovery Procedure
        Finding Copies of System Tables
        Building a New Master Device
          Replacing the Master Device
          Rebuilding the Configuration Area
        Starting SAP ASE in Master-Recover Mode
        Re-creating Device Allocations for master
        Checking Your Backup Server sysservers Information
        Verifying That Your Backup Server Is Running
        Loading a Backup of master
        Updating the number of devices Configuration Parameter
        Restarting SAP ASE in Master-Recover Mode
        Checking System Tables to Verify Current Backup of master
        Restarting SAP ASE
        Restoring Server User IDs
        Restoring the model Database
        Checking SAP ASE
        Backing Up master
      Recovering the model Database
      Recovering the sybsystemprocs Database
        Restoring sybsystemprocs with installmaster
        Restoring sybsystemprocs with load database
      Reducing the Size of tempdb
        Reset tempdb to Default Size
      Restoring System Tables with disk reinit and disk refit
        Restoring sysdevices with disk reinit
        Restoring sysusages and sysdatabase with disk refit
    Archive Database Access
      Components of an Archive Database
        The Database Dump
        The Modified Pages Section
        The sysaltusages Table and the Scratch Database
      Working With an Archive Database
        DDLGen Support for Archive Database Access
      Configuring an Archive Database
        Sizing the Modified Pages Section
        Increasing the Amount of Space Allocated to the Modified Pages Section
        Materializing an Archive Database
          Using load database with norecovery
          Using Logical Devices with an Archive Database
          load database Limitations with an Archive Database
        Bringing an Archive Database Online
        Loading a Transaction Log into an Archive Database
        Dropping an Archive Database
      SQL Commands for Archive Databases
      dbcc Commands for Archive Databases
      Issuing a Typical Archive Database Command Sequence
      Compressed Dumps for an Archive Database
        Creating a Compression Memory Pool
      Upgrading and Downgrading an SAP ASE with Archive Databases
        Limitations for Downgrading an SAP ASE with an Archive Database
      Compatibility Issues for a Compressed Dump
      Archive Database Limitations
    Shrinking Databases
      Shrinking a Database
      How SAP ASE Shrinks the Database
      Shrink Operations on Databases That Contain Text or Image Data
        Shrink Database Backlink Performance Improvements
      Restarting Partially Completed Shrink Operations
      Moving Data Before Shrinking the Database
        Restrictions for Moving the Transaction Log
        Locks Held During Data Movement
      Determine the Status of a Shrink Operation
      Upgrading or Downgrading Shrunken Databases
      Restrictions
    Expanding Databases Automatically
      Layouts for Disks, Devices, Databases, and Segments
      Threshold Action Procedures
      Installing Automatic Database Expansion Procedures
      Running sp_dbextend
        Validating Current Thresholds
      Configuring a Database for Automatic Expansion
      Restrictions and Limitations
    Managing Free Space with Thresholds
      Monitoring Free Space with the Last-Chance Threshold
        Controlling How Often sp_thresholdaction Executes
      Rollback Records and the Last-Chance Threshold
        Calculating the Space for Rollback Records
          Using lct_admin to Determine the Free Log Space
        Determining the Current Space for Rollback Records
        Effect of Rollback Records on the Last-Chance Threshold
        User-Defined Thresholds
      Last-Chance Threshold and User Log Caches for Shared Log and Data Segments
        Using lct_admin abort to Abort Suspended Transactions
      Add Space to the Master Database’s Transaction Log
      Automatically Aborting or Suspending Processes
        Using abort tran on log full to Abort Transactions
      Waking Suspended Processes
      Adding, Changing, and Deleting Thresholds
        Displaying Information About Existing Thresholds
        Thresholds and System Tables
        Creating Free-Space Thresholds
        Changing or Specifying a New Free-Space Threshold
        Dropping a Threshold
      Creating a Free-Space Threshold for the Log Segment
        Usage Scenario: Testing and Adjusting the New Threshold
      Creating Additional Thresholds on Data and Log Segments
        Determining Threshold Placement
      Creating Threshold Procedures
        Parameters for Threshold Procedures
        Generating Error Log Messages
        sp_thresholdaction Procedures that Include a dump transaction
        A Simple Threshold Procedure
        A More Complex Procedure
        Placement for Threshold Procedures
      Disabling Free-Space Accounting for Data Segments
    Transaction Log Space Management
      Transaction Log Space
      Automating Transaction Log Management
        Rescue Scenario Use Case
        Monitoring Use Case
        Monitoring and Control Use Case
      Analyzing and Managing Transaction Log Space
        Viewing the Span of a Transaction
        Viewing the Oldest Active Transactions
      Truncating a Log that Is Not on A Separate Segment
      Truncating the Log in Early Development Environments
      Truncating a Log that Has No Free Space
        Dangers of Using with truncate_only and with no_log
        Provide Sufficient Log Space
          Querying the syslogshold Table
  Migration Technology Guide 15.5
    About this book
    Migration Strategy
      Preupgrade considerations
        Understanding optimization goals
          Optimization criteria
        Resource recommendations for Adaptive Server 15.0
        Incorporating statistics in Adaptive Server 15.0
        Recommended testing before upgrade
      Migrating to Adaptive Server 15.0 features
        Upgrading, and using new features immediately
        Upgrading, and using new features later
        Upgrading, but not using new features
      Troubleshooting
        Query processing tips
        Information to capture before contacting Technical Support
          701 errors
          Performance problems with a limited number of queries
          System-wide performance issues
          Uploading diagnostics to Technical Support
    QPTune
      Setting up your system
      Using QPTune to fix missing statistics
        Starting QPTune to fix missing statistics
        Collecting statistics
        Fixing statistics
        Using undo_fix_stats
      Using QPTune to tune queries or applications
        Starting QPTune to tune queries or applications
          Simple start
          Custom start
        Collecting metrics
        Comparing metrics
        Applying the best results
      Configuration file
      Examples
      Upgrade issues
      Localization
      QPTune GUI
        Environment and system requirements
        Starting the QPTune GUI
        Fixing missing statistics
        Tuning Task
      QPTune reference information
    Running the Query Processor in Compatibility Mode
      Enabling compatibility mode
      Feature support in compatibility mode
      Additional trace flag for diagnostics
      New stored procedure sp_compatmode
      Changes to @@qpmode global variable
      Diagnostic tool
  Performance and Tuning Series: Basics 15.7
    Introduction to the Basics
      Good performance
        Response time
        Throughput
        Designing for performance
      Tuning performance
        Tuning levels
          Application layer
          Database layer
          Adaptive Server layer
          Devices layer
          Network layer
          Hardware layer
          Operating system layer
      Identifying system limits
        Threads, thread pools, engines and CPUs
        Varying logical page sizes
        Number of columns and column size
        Maximum length of expressions, variables, and stored procedure arguments
        Number of logins
        Performance implications for limits
      Size of kernel resource memory
      Analyzing performance
        Normal forms
        Locking
        Special considerations
    Networks and Performance
      Potential performance problems
        Basic questions on network performance
        Techniques summary
      Engine and thread affinity
        Network listeners
          Network listeners in process mode
      How Adaptive Server uses the network
      Configuring the I/O controller
        Dynamically reconfiguring I/O tasks
      Changing network packet sizes
      Large versus default packet sizes for user connections
        Number of packets is important
        Adaptive Server evaluation tools
        Other evaluation tools
        Server-based techniques for reducing network traffic
      Impact of other server activities
        Single user versus multiple users
      Improving network performance
        Isolate heavy network users
        Set tcp no delay on TCP networks
        Configure multiple network listeners
    Using Engines and CPUs
      Background concepts
        How Adaptive Server processes client requests
        Client task implementation
      Single-CPU process model
        Scheduling engines to the CPU
        Scheduling tasks to the engine
        Execution task scheduling
          Scheduling client task processing time
          Maintaining CPU availability during idle time
      Adaptive Server SMP process model
        Scheduling engines to CPUs
        Scheduling Adaptive Server tasks to engines
        Multiple network engines
        Task priorities and run queues
        Processing scenario
      Asynchronous log service
        Understanding the user log cache (ULC) architecture
        When to use ALS
        Using the ALS
          ULC flusher
          Log writer
      Housekeeper wash task improves CPU utilization
        Side effects of the housekeeper wash task
        Configuring the housekeeper wash task
          Changing the percentage by which writes can be increased
          Disabling the housekeeper wash task
          Allowing the housekeeper wash task to work continuously
      Measuring CPU usage
        Single-CPU machines
          Using sp_monitor to measure CPU usage
          Using sp_sysmon to measure CPU usage
          Operating system commands and CPU usage
        Determining when to configure additional engines
        Taking engines offline
      Enabling engine-to-CPU affinity
      Multiprocessor application design guidelines
    Distributing Engine Resources
      Successfully distributing resources
        Environment analysis and planning
          Analyzing the environment
          Phase 1 – execution object behavior
          Phase 2 – the entire environment
        Performing benchmark tests
        Setting goals
        Results analysis and tuning
      Managing preferred access to resources
      Types of execution classes
      Execution class attributes
        Base priority
          Setting the task priority
        Task-to-engine affinity
          Engine group affinity when switching modes
      Setting execution class attributes
        Assigning execution classes
        Scheduling service tasks
        Creating user-defined execution class task affinity
        How execution class bindings affect scheduling
          Execution class bindings
          Engine affinity can affect scheduling in process mode
        Setting attributes for a session only
        Getting information about execution classes
      Determining precedence and scope
        Multiple execution objects and ECs
          Precedence rule
          Scope rule
        Resolving a precedence conflict
        Examples: determining precedence
      Example scenario using precedence rules
        Planning
        Configuration
        Execution characteristics
      Considerations for engine resource distribution
        Client applications: OLTP and DSS
          Unintrusive client applications
          I/O-bound client applications
          Critical applications
        Adaptive Server logins: high-priority users
        Stored procedures: “hot spots”
    Memory Use and Performance
      How memory affects performance
      How much memory to configure
      Dynamic reconfiguration
        How memory is allocated
        Large allocation in Adaptive Server
      Caches in Adaptive Server
        Cache sizes and buffer pools
      Procedure cache
        Getting information about the procedure cache size
          Monitoring procedure cache performance
        Procedure cache sizing
        Estimating stored procedure size
        Estimating the procedure cache size for a sort
        Estimating the amount of procedure cache used by create index
        Reducing query processing latency
          Reusing dynamic SQL LWPs across multiple connections
      Statement cache
      Data cache
        Page aging in data cache
        Effect of data cache on retrievals
        Effect of data modifications on the cache
        Data cache performance
        Testing data cache performance
          Cache hit ratio for a single query
          Cache hit ratio information from sp_sysmon
      Configuring the data cache to improve performance
        Commands to configure named data caches
        Tuning named caches
        Cache configuration goals
        Gather data, plan, and then implement
        Evaluating cache needs
        Large I/O and performance
          The optimizer and cache choices
          Choosing the right mix of I/O sizes for a cache
        Reducing spinlock contention with cache partitions
        Cache replacement strategies and policies
          Strategies
          Policies
      Named data cache recommendations
        Sizing caches for special objects, tempdb, and transaction logs
          Examining cache needs for tempdb
          Examining cache needs for transaction logs
          Choosing the I/O size for the transaction log
          Configuring for large log I/O size
          Additional tuning tips for log caches
        Basing data pool sizes on query plans and I/O
          Checking I/O size for queries
        Configuring buffer wash size
        Overhead of pool configuration and binding objects
          Pool configuration overhead
          Cache binding overhead
      Maintaining data cache performance for large I/O
        Diagnosing excessive I/O counts
        Using sp_sysmon to check large I/O performance
      Speed of recovery
        Tuning the recovery interval
        Effects of the housekeeper wash task on recovery time
      Auditing and performance
        Sizing the audit queue
        Auditing performance guidelines
      Text and image pages
    Tuning Asynchronous Prefetch
      How asynchronous prefetch improves performance
        Improving query performance by prefetching pages
        Prefetching control mechanisms in a multiuser environment
        Look-ahead set during recovery
          Prefetching log pages
          Prefetching data and index pages
        Look-ahead set during sequential scans
        Look-ahead set during nonclustered index access
        Look-ahead set during dbcc checks
          Allocation checking
          checkdb and checktable
        Look-ahead set minimum and maximum sizes
      When prefetch is automatically disabled
        Flooding pools
        I/O system overloads
        Unnecessary reads
          Page chain fragmentation
      Tuning goals for asynchronous prefetch
        Commands for configuration
      Other Adaptive Server performance features
        Large I/O
          Sizing and limits for the 16K pool
          Limits for the 2K pool
        Fetch-and-discard (MRU) scans
        Parallel scans and large I/Os
          Hash-based table scans
          Partition-based scans
      Special settings for asynchronous prefetch limits
        Setting limits for recovery
        Setting limits for dbcc
      Maintenance activities for high prefetch performance
        Eliminating kinks in heap tables
        Eliminating kinks in clustered index tables
        Eliminating kinks in nonclustered indexes
      Performance monitoring and asynchronous prefetch
  Performance and Tuning Series: Improving Performance with Statistical Analysis 15.7
    Using the set statistics Commands
      set command syntax
      Using simulated statistics
      Checking subquery cache performance
      Checking compile and execute time
        Converting ticks to milliseconds
      Reporting physical and logical I/O statistics
        Total actual I/O cost value
        Statistics for writes
        Statistics for reads
          Sample output with and without an index
        statistics io output for cursors
        Scan count
          Queries reporting a scan count of 1
          Queries reporting a scan count of more than 1
          Queries reporting scan count of 0
        Relationship between physical and logical reads
          Logical reads, physical reads, and 2K I/O
          Physical reads and large I/O
          Reads and writes on worktables
          Effects of caching on reads
        statistics io and merge joins
      Analyzing queries with set statistics plancost
        set statistics plancost example
    Statistics Tables and Displaying Statistics with optdiag
      System tables that store statistics
        systabstats table
        sysstatistics table
      Viewing statistics with the optdiag utility
        optdiag syntax
        optdiag header information
        Table statistics
          Table-level derived statistics
          Data page cluster ratio
          Space utilization
          Large I/O efficiency
        Index statistics
          Index-level derived statistics
          Data page cluster ratio
          Index page cluster ratio
          Data row cluster ratio
          Space utilization for an index
          Large I/O efficiency for an index
        Column statistics
          Sample output for column statistics
          Range cell and total density values
          Range and in-between selectivity values
        Histogram displays
          Sample output for histograms
          Understanding histogram output
          Histograms for columns with highly duplicated values
          Choosing the number of steps for highly duplicated values
        Configuring the histogram tuning factor
          How many histogram steps?
      Changing statistics with optdiag
        Using optdiag binary
          When to use binary
        Updating selectivities with optdiag input mode
        Editing histograms
          Adding frequency count cells to a histogram
          Skipping load-time verification for step numbering
          Rules checked during histogram loading
          Re-creating indexes without losing statistics updates
      Using simulated statistics
        optdiag syntax for simulated statistics
        Simulated statistics output
        Requirements for loading and using simulated statistics
          Using simulated statistics in the original database
          Using simulated statistics in another database
        Dropping simulated statistics
        Running queries with simulated statistics
          showplan messages for simulated statistics
      Character data containing quotation marks
      Effects of SQL commands on statistics
        How query processing affects systabstats
      Viewing statistics and histograms using sp_showoptstats
  Performance and Tuning Series: Locking and Concurrency Control 15.7
    Introduction to Locking
      How locking affects performance
      Locking and data consistency
      Granularity of locks and locking schemes
        Allpages locking
        Datapages locking
        Datarows locking
      Types of locks in Adaptive Server
        Page and row locks
        Table locks
          Commands that take intent locks
        Demand locks
          Demand locking with serial execution
          Demand locking with parallel execution
        Row-locked system tables
        Range locking for serializable reads
        Latches
      Lock compatibility and lock sufficiency
      How isolation levels affect locking
        Isolation level 0, read uncommitted
        Isolation level 1, read committed
        Isolation level 2, repeatable read
        Isolation level 3, serializable reads
        Adaptive Server default isolation level
      Lock types and duration during query processing
        Lock types during create index commands
        Locking for select queries at isolation level 1
        Table scans and isolation levels 2 and 3
          Table scans and table locks at isolation level 3
          Isolation level 2 and allpages-locked tables
        When update locks are not required
        Locking during or processing
          Processing or queries for allpages-locked tables
          Processing or queries for data-only-locked tables
        Skipping uncommitted inserts during selects
          Skipping uncommitted inserts during deletes, updates, and inserts
          Locking during DMLs on tables with referential integrity constraints
        Using alternative predicates to skip nonqualifying rows
      Pseudocolumn-level locking
        Select queries that do not reference the updated column
        Qualifying old and new values for uncommitted updates
      Reducing contention
    Locking Configuration and Tuning
      Locking and performance
        Using sp_sysmon and sp_object_stats
        Reducing lock contention
          Adding indexes to reduce contention
          Keeping transactions short
          Avoiding hot spots
        Additional locking guidelines
      Configuring locks and lock promotion thresholds
        Configuring the Adaptive Server lock limit
          Estimating number of locks for data-only-locked tables
        Setting lock promotion thresholds
          Lock promotion and scan sessions
          Lock promotion high water mark
          Lock promotion low water mark
          Lock promotion percent
          Setting server-wide lock promotion thresholds
          Setting the lock promotion threshold for a table or database
          Precedence of settings
          Dropping database and table settings
          Using sp_sysmon while tuning lock promotion thresholds
      Choosing the locking scheme for a table
        Analyzing existing applications
        Choosing a locking scheme based on contention statistics
        Monitoring and managing tables after conversion
        Applications not likely to benefit from data-only locking
          Tables where clustered index performance must remain high
          Tables with maximum-length rows
      Optimistic index locking
        Using optimistic index locking
        Cautions and issues
    Locking Reports
      Locking tools
        Getting information about blocked processes
        Viewing locks with sp_lock
        Viewing locks with sp_familylock
        Intrafamily blocking during network buffer merges
        Monitoring lock timeouts
      Deadlocks and concurrency
        Server-side versus application-side deadlocks
          Application deadlock example
        Server task deadlocks
        Deadlocks and parallel queries
        Printing deadlock information to the error log
        Avoiding deadlocks
          Acquiring locks on objects in the same order
          Delaying deadlock checking
      Identifying tables where concurrency is a problem
      Lock management reporting
    Using Locking Commands
      Specifying the locking scheme for a table
        Specifying a server-wide locking scheme
        Specifying a locking scheme with create table
        Changing a locking scheme with alter table
        Before and after changing locking schemes
        Expense of switching to or from allpages locking
        Sort performance during alter table
        Specifying a locking scheme with select into
      Controlling isolation levels
        Setting isolation levels for a session
        Syntax for query-level and table-level locking options
        Using holdlock, noholdlock, or shared
        Using the at isolation clause
        Making locks more restrictive
        Making locks less restrictive
      Readpast locking
      Cursors and locking
        Using the shared keyword
      Additional locking commands
        lock table
        Lock timeouts
    Indexes
      Types of indexes
        Index pages
          Root level
          Leaf level
          Intermediate level
        Index size
      Indexes and partitions
        Local indexes on partitioned tables
        Global indexes on partitioned tables
        Local versus global indexes
        Unsupported partition index types
      Clustered indexes on allpages-locked tables
        Clustered indexes and select operations
          Relationship between physical and logical reads
        Clustered indexes and insert operations
        Page splitting on full data pages
          Exceptions to page splitting
        Page splitting on index pages
        Performance impacts of page splitting
        Overflow pages
        Clustered indexes and delete operations
          Deleting the last row on a page
          Index page merges
      Nonclustered indexes
        Leaf pages revisited
        Nonclustered index structure
        Nonclustered indexes and select operations
        Nonclustered index performance
        Nonclustered indexes and insert operations
        Nonclustered indexes and delete operations
        Clustered indexes on data-only-locked tables
      Index covering
        Covering matching index scans
        Covering nonmatching index scans
      Indexes and caching
        Using separate caches for data and index pages
        Index trips through the cache
    Indexing for Concurrency Control
      How indexes affect performance
      Detecting indexing problems
        Symptoms of poor indexing
          Lack of indexes is causing table scans
          Index is not selective enough
          Index does not support range queries
          Too many indexes slow data modification
          Index entries are too large
          Exception for wide data rows and wide index rows
      Fixing corrupted indexes
      Index limits and requirements
      Choosing indexes
        Index keys and logical keys
        Guidelines for clustered indexes
        Choosing clustered indexes
        Candidates for nonclustered indexes
        Choosing function-based indexes
        Index selection
          Examples of using index selection
        Other indexing guidelines
        Choosing nonclustered indexes
          Performance price for data modification
        Choosing composite indexes
        Key order and performance in composite indexes
        Advantages and disadvantages of composite indexes
        Using online reorg rebuild for data-only-locked indexes
      Techniques for choosing indexes
        Choosing an index for a range query
        Adding a point query with different indexing requirements
      Index and statistics maintenance
        Dropping indexes that hurt performance
        Choosing space management properties for indexes
      Additional indexing tips
        Creating artificial columns
        Keeping index entries short and avoiding overhead
        Dropping and rebuilding indexes
        Configuring enough sort buffers
        Creating the clustered index first
        Configure large buffer pools
      Asynchronous log service
        Understanding the user log cache (ULC) architecture
        When to use ALS
        Using ALS
          ULC flusher
          Log writer
          Stored procedure support for ALS
  Performance and Tuning Series: Monitoring Adaptive Server with sp_sysmon 15.7
    Introduction to sp_sysmon
      Using sp_sysmon
        When to run sp_sysmon
      Invoking sp_sysmon
        Fixed-time intervals
        Using begin_sample and end_sample
        Specifying report sections for output
        Specifying the application detail parameter
        Using the noclear option
        Redirecting output to a file
    Monitoring Performance with sp_sysmon
      How to use the reports
        Header information
        Reading output
          Rows
          Columns in output
        Interpreting the data
          Per-second and per-transaction data
          Percent of total and count data
          Per engine data
          Total or summary data
      Cache Wizard
        Cache wizard syntax
        Preparing to run the cache wizard
        Sample output
        Sample output for Cache Wizard
      Kernel utilization
        Kernel Utilization – threaded mode
          Sample output
          Engine Utilization (Tick %)
          Average Runnable Tasks
          CPU Yields by Engine
          Thread Utilization (OS %)
          Page Faults at OS
          Context Switches at OS
          CtlibController, DiskController, and NetController Activity
          Blocking Call Activity
        Kernel Utilization – process mode
          Sample output
          Engine Busy Utilization
          CPU Yields by Engine
          Network Checks
          Disk I/O Checks
          Total Disk I/O Checks
      Worker Process Management
        Sample output
        Worker Process Requests
        Worker Process Usage
        Memory Requests for Worker Processes
        Avg Mem Ever Used By a WP
      Parallel Query Management
        Sample output
        Parallel Query Usage
        Merge Lock Requests
        Sort Buffer Waits
      Task Management
        Sample output
        Connections Opened
        Task Context Switches by Engine
        Task Context Switches Due To
          Voluntary Yields
          Cache Search Misses
          Exceeding I/O Batch Size
          System Disk Writes
          Logical Lock Contention
          Address Lock Contention
          Latch Contention
          Physical, logical, and object Lock Transition
          Log Semaphore Contention
          PLC Lock Contention
          Group Commit Sleeps
          Last Log Page Writes
          Modify Conflicts
          I/O Device Contention
          Network Packet Received
          Network Packet Sent
          Network Services
          Other Causes
      Application Management
        Requesting detailed application information
        Sample output
        Application Statistics Summary (All Applications)
          Priority Changes
          Allotted Slices Exhausted
          Skipped Tasks By Engine
          Engine Scope Changes
        Per Application Or Per Application And Login
          Application Activity
          Application Priority Changes
          Application I/Os Completed
          Resource Limits Violated
      ESP Management
        Sample output
          ESP Requests
          Avg. Time to Execute an ESP
      Housekeeper Task Activity
        Sample output
        Buffer Cache Washes
        Garbage Collections
        Pages Processed in GC
        Statistics Updates
      Monitor Access to Executing SQL
        Sample output
        Waits on Execution Plans
        Number of SQL Text Overflows
        Maximum SQL Text Requested
      Transaction Profile
        Sample output
        Transaction Summary
          How to count multidatabase transactions
        Transaction Detail
        Inserts
          Fully and minimally logged
          Total Rows Inserted
        Updates and update detail sections
          Updates
          Data-Only-Locked Updates
        Deletes
          Fully and minimally logged
          Total Rows Deleted
      Transaction Management
        Sample output
        ULC Flushes to Xact Log
          Any Logging Mode DMLs
          Fully Logged DMLs
          Minimally Logged DMLs
        Total ULC Flushes
        ULC Flushes Skipped
          Fully Logged DMLs
          Minimally Logged DMLs
          Total ULC Flushes Skips
        ULC Log Records
          Fully Logged DMLs
          Minimally Logged DMLs
          Total ULC Log Records
        Max ULC Size During Sample
          Fully Logged DMLs
          Minimally Logged DMLs
        ML-DMLs Sub-Command Scans
          ULC scans
          syslogs Scans
          Total Sub-Command Scans
        ML-DMLs ULC Efficiency
          Discarded Sub-Commands
          Logged Sub-Commands
        Total ML-DML Sub-Commands
        ULC Semaphore Requests
        Log Semaphore Requests
        Transaction Log Writes
        Transaction Log Allocations
        Avg # Writes per Log Page
        Tuning Recommendations for Transaction Management
      Index Management
        Sample output
        Nonclustered Maintenance
          Ins/Upd Requiring Maint
          Deletes Requiring Maintenance
          RID Upd from Clust Split
          Upd/Del DOL Req Maint
        Page Splits
          Reducing page splits for ascending key inserts
          Default data page splitting
          Effects of ascending inserts
          Setting ascending inserts mode for a table
          Retries and Deadlocks
          Add Index Level
        Page Shrinks
        Index Scans
      Metadata Cache Management
        Sample output
        Open Object, Index, Partition, and Database Usage
        Descriptors immediately discarded
        Object Manager Spinlock Contention
        Object and Index Spinlock Contention
        Index Hash Spinlock Contention
          Using sp_monitorconfig to find metadata cache usage statistics
        Partition Spinlock Contention
        Partition Hash Spinlock Contention
      Lock Management
        Sample output
        Lock Summary
        Lock Detail
          Exclusive Address and Shared Address
          Last Page Locks on Heaps
          Table Lock Hashtable
        Deadlocks by Lock Type
        Deadlock Detection
          Deadlock Searches
          Searches Skipped
          Average Deadlocks per Search
        Lock Promotions
        Lock Time-out Information
        Cluster Lock Summary
      Data Cache Management
        Sample output
        Cache Statistics Summary (All Caches)
          Cache Search Summary
          Cache Turnover
          Cache Strategy Summary
          Large I/O Usage
          Large I/O Effectiveness
          Asynchronous Prefetch Activity Report
          Other Asynchronous Prefetch Statistics
          Dirty Read Behavior
        Cache Management by Cache
          Cache Spinlock Contention
          Utilization
          Cache Search, Hit, and Miss Information
          Pool Turnover
          Cluster Cache Behavior
          Buffer Wash Behavior
          Cache Strategy
          Large I/O Usage
          Large I/O Detail
          Dirty Read Behavior
      Procedure Cache Management
        Sample output
        Procedure Requests
        Procedure Reads from Disk
        Procedure Writes to Disk
        Procedure Removals
        Procedure Recompilations
        SQL Statement Cache
          Sample output
      Memory Management
        Sample output
        Pages Allocated
        Pages Released
      Recovery Management
        Sample output
        Checkpoints
          # of Normal Checkpoints
          # of Free Checkpoints
          Total Checkpoints
        Average Time per Normal Checkpoint
        Average Time per Free Checkpoint
        Increasing the Housekeeper Batch Limit
      Disk I/O Management
        Sample output
        Maximum Outstanding I/Os
        I/Os Delayed by
          Disk I/O Structures
          Server Configuration Limit
          Engine Configuration Limit
          Operating System Limit
        Requested and Completed Disk I/Os
          Total Requested Disk I/Os
          Completed Disk I/Os
        Device Activity Detail
          Reads and Writes
          Total I/Os
          Mirror Semaphore Granted and Waited
      Network I/O Management
        Sample output
        Total Network I/Os Requests
        Network I/Os Delayed
        Total TDS Packets Received
        Total Bytes Received
        Average Bytes Received per Packet
        Total TDS Packets Sent
        Total Bytes Sent
        Average Bytes Sent per Packet
      Replication Agent
        Sample output
          Log Scan Summary
          Log Records Scanned
          Log Records Processed
          Number of Log Scans
          Amount of Time for Log Scans
          Longest Time for Log Scan
          Average Time per Log Scan
          Log Scan Activity
          Transaction Activity
          Log Extension Wait
          Schema Cache
          Backward Schema
          Truncation Point Movement
          Connections to Replication Server
          Network Packet Information
          I/O Wait from RS
  Performance and Tuning Series: Monitoring Tables 15.7
    Introduction to Monitoring Tables
      Monitoring tables in Adaptive Server
        Where does the monitoring information come from?
        Using Transact-SQL to monitor performance
      Installing the monitoring tables
        Versions earlier than 15.0.2, except Cluster Edition
          Configuring loopback proxy server for 15.0.1 ESD #2 and earlier
      Remotely accessing and editing monitoring tables
      Configuring the monitoring tables to collect data
        Allocating memory for pipe error messages
        Configuration parameters for the monitoring tables
        Error 12036
      The mon_role and additional access controls
      Wrapping counter datatypes
      Stateful historical monitoring tables
        Transient monitoring data
      Using monitoring tables in a clustered environment
        Configuring the system view
        InstanceID added to monitor instances
      Monitoring tables for the statement cache
        Configuring Adaptive Server to monitor the statement cache
        Deleting statements from the statement cache
        Obtaining the hash key from the SQL text
        Displaying text and parameter information for cached statements
      Examples of querying the monitoring tables
    Wait Events
      Event 19: xact coord: pause during idle loop
        Action
      Event 29: waiting for regular buffer read to complete
        Action
      Event 30: wait to write MASS while MASS is changing
        Action
      Event 31: waiting for buf write to complete before writing
        Action
      Event 32: waiting for an APF buffer read to complete
        Action
      Event 35: waiting for buffer validation to complete
        Action
      Event 36: waiting for MASS to finish writing before changing
        Action
      Event 37: wait for MASS to finish changing before changing
        Action
      Event 41: wait to acquire latch
        Action
      Event 46: wait for buf write to finish getting buf from LRU
        Action
      Event 51: waiting for last i/o on MASS to complete
        Action
      Event 52: waiting for i/o on MASS initiated by another task
        Action
      Event 53: waiting for MASS to finish changing to start i/o
        Action
      Event 54: waiting for write of the last log page to complete
        Action
      Event 55: wait for i/o to finish after writing last log page
        Action
      Event 57: checkpoint process idle loop
        Action
      Event 61: hk: pause for some time
        Action
      Event 70: waiting for device semaphore
        Action
      Event 83: wait for DES state is changing
        Action
      Event 84: wait for checkpoint to complete
        Action
      Event 85: wait for flusher to queue full DFLPIECE
        Action
      Event 91: waiting for disk buffer manager i/o to complete
        Action
      Event 99: wait for data from client
        Action
      Event 104: wait until an engine has been offlined
        Action
      Event 124: wait for mass read to finish when getting page
        Action
      Event 142: wait for logical connection to free up
        Action
      Event 143: pause to synchronise with site manager
        Action
      Event 150: waiting for a lock
        Action
      Event 157: wait for object to be returned to pool
        Action
      Event 169: wait for message
        Action
      Event 171: wait for CTLIB event to complete
        Action
      Event 178: waiting while allocating new client socket
        Action
      Event 179: waiting while no network read or write is required
        Action
      Event 197: waiting for read to complete in parallel dbcc
        Action
      Event 200: waiting for page reads in parallel dbcc
        Action
      Event 201: waiting for disk read in parallel dbcc
        Action
      Event 202: waiting to re-read page in parallel
        Action
      Event 203: waiting on MASS_READING bit in parallel dbcc
        Action
      Event 205: waiting on TPT lock in parallel dbcc
        Action
      Event 207: waiting sending fault msg to parent in PLL dbcc
        Action
      Event 209: waiting for a pipe buffer to read
        Action
      Event 210: waiting for free buffer in pipe manager
        Action
      Event 214: waiting on run queue after yield
        Action
      Event 215: waiting on run queue after sleep
        Action
      Event 222: replication agent sleeping during flush
        Action
      Event 250: waiting for incoming network data
        Action
      Event 251: waiting for network send to complete
        Action
      Event 259: waiting until last chance threshold is cleared
        Action
      Event 260: waiting for date or time in waitfor command
        Action
      Event 266: waiting for message in worker thread mailbox
        Action
      Event 272: waiting for lock on ULC
        Action
      Event 334: waiting for Lava pipe buffer for write
        Action
      Event 374: wait for lock pending/data pending to be cleared
        Action
      Event 375: OCM wait for finishing BAST handling
        Action
      Event 389: OCM wait for pushing data flag to be cleared
      Event 380: lock/data pending to reset when OCM_ERR_DIDNTWAIT
        Action
      Event 483: Waiting for ack of a multicast synchronous message
        Action
  Performance and Tuning Series: Physical Database Tuning 15.7
    Controlling Physical Data Placement
      Improving performance by controling object placement
        Identifying poor object placement
        Using sp_sysmon while changing data placement
      Improving I/O performance
        Spreading data across disks to avoid I/O contention
          Avoiding physical contention in parallel join queries
        Isolating server-wide I/O from database I/O
          tempdb
          sybsecurity
        Keeping transaction logs on a separate disk
        Mirroring a device on a separate disk
          Using serial mode
      Using segments
        Creating objects on segments
        Separating tables and indexes
        Splitting large tables across devices
        Moving text storage to a separate device
      Partitioning tables for performance
        How Adaptive Server distributes partitions on devices
          RAID devices and partitioned tables
      Space planning for partitioned tables
        Read-only tables
        Read-mostly tables
        Tables with random data modification
      Adding disks when devices are full
        Adding disks when devices are full
        Adding disks when devices are nearly full
      Maintenance issues and partitioned tables
        Regular maintenance checks for partitioned tables
    Data Storage
      Query optimization
        Query processing and page reads
      Adaptive Server pages
        Page headers and page sizes
        Data and index pages
        Large object (LOB) pages
        Extents
      Pages that manage space allocation
        Global allocation map pages
        Allocation pages
        Object allocation map pages
        How OAM pages and allocation pages manage object storage
        Page allocation keeps an object’s pages together
        Data access using sysindexes and syspartitions
      Space overheads
        Number of columns and size
          Variable-length columns in APL tables
          Variable-length columns in DOL tables
        Number of rows per data page
        Additional number of object and size restrictions
      Tables without clustered indexes
        Locking schemes
        Select operations on heap tables
          Allpages-locked heap tables
          Data-only locked heap tables
        Inserting data into an allpages-locked heap table
        Inserting data into a data-only-locked heap table
        Deleting data from a heap table
          Deleting from an allpages-locked heap table
          Deleting from a data-only locked heap table
          Deleting the last row on a page
        Updating data on a heap table
          Allpages-locked heap tables
          Data-only-locked heap tables
        How Adaptive Server performs I/O for heap operations
          Sequential prefetch, or large I/O
        Maintaining heap tables
          Using reorg rebuild to reclaim space
          Reclaiming space by creating a clustered index
          Reclaiming space using bcp
        Transaction log: a special heap table
        Asynchronous prefetch and I/O on heap tables
      Caches and object bindings
        Heap tables, I/O, and cache strategies
          LRU replacement strategy
          MRU replacement strategy
        Select operations and caching
        Data modification and caching
          Caching and inserts on heap tables
          Caching, update, and delete operations on heap tables
    Setting Space Management Properties
      Reducing index maintenance
        Advantages of using fillfactor
        Disadvantages of using fillfactor
        Setting fillfactor values
        fillfactor examples
          No stored fillfactor values
          Table-level or clustered index fillfactor value stored
        Using the sorted_data and fillfactor options
      Reducing row forwarding
        Default, minimum, and maximum values for exp_row_size
          Default value
        Specifying an expected row size with create table
        Adding or changing an expected row size
        Setting a default expected row size server-wide
        Displaying the expected row size for a table
        Choosing an expected row size for a table
          Using optdiag to check for forwarded rows
          Querying systabstats for forwarded rows
        Conversion of max_rows_per_page to exp_row_size
        Monitoring and managing tables that use expected row size
      Leaving space for forwarded rows and inserts
        Extent allocation commands and reservepagegap
        Specifying a reserve page gap with create table
        Specifying a reserve page gap with create index
        Changing reservepagegap
        reservepagegap examples
          reservepagegap specified only for the table
          reservepagegap specified for a clustered index
        Choosing a value for reservepagegap
        Monitoring reservepagegap settings
        reservepagegap and sorted_data options
          Matching options and goals
      Using max_rows_per_page on allpages-locked tables
        Reducing lock contention
        Indexes and max_rows_per_page
        select into and max_rows_per_page
        Applying max_rows_per_page to existing data
    Table and Index Size
      Determining the sizes of tables and indexes
      Effects of data modifications on object sizes
      Using optdiag to display object sizes
        Advantages of optdiag
        Disadvantages of optdiag
      Using sp_spaceused to display object size
        Advantages of sp_spaceused
        Disadvantages of sp_spaceused
      Using sp_estspace to estimate object size
        Advantages of sp_estspace
        Disadvantages of sp_estspace
      Using formulas to estimate object size
        Factors that can affect storage size
        Storage sizes for datatypes
        Tables and indexes used in the formulas
        Calculating table and clustered index sizes for allpages-locked tables
          Calculate the data row size
          Compute the number of data pages
          Compute the size of clustered index rows
          Compute the number of clustered index pages
          Compute the total number of index pages
          Calculate allocation overhead and total pages
          Calculate the size of the leaf index row
          Calculate the number of leaf pages in the index
          Calculate the size of the nonleaf rows
          Calculate the number of non-leaf pages
          Calculate the total number of non-leaf index pages
          Calculate allocation overhead and total pages
        Calculating the sizes of data-only-locked tables
          Calculate the data row size
          Compute the number of data pages
          Calculate allocation overhead and total pages
          Calculate the size of the index row
          Calculate the number of leaf pages in the index
          Calculate the number of non-leaf pages in the index
          Calculate the total number of non-leaf index pages
          Calculate allocation overhead and total pages
        Other factors affecting object size
          Effects of space management properties
        Very small rows
        LOB pages
        Advantages of using formulas to estimate object size
        Disadvantages of using formulas to estimate object size
    Database Maintenance
      Running reorg on tables and indexes
      Creating and maintaining indexes
        Configuring Adaptive Server to speed sorting
        Dumping the database after creating an index
        Creating an index on sorted data
        Maintaining index and column statistics
        Rebuilding indexes
      Creating or altering a database
      Backup and recovery
        Local backups
        Remote backups
        Online backups
        Using thresholds to prevent running out of log space
        Minimizing recovery time
        Recovery order
      Bulk-copy
        Parallel bulk-copy
        Batches and bulk-copy
        Slow bulk-copy
        Improving bulk-copy performance
        Replacing the data in a large table
        Adding large amounts of data to a table
        Using partitions and multiple bulk-copy processes
        Impacts on other users
      Database consistency checker
      Using dbcc tune (cleanup)
      Using dbcc tune on spinlocks
      Determining the space available for maintenance activities
        Overview of space requirements
        Checking space usage and space available
          Checking space used for tables and indexes
          Checking space on segments
          Checking space requirements for space management properties
          Space management properties applied to the table
          Space management properties applied to the index
        Estimating the effects of space management properties
        If there is not enough space
    Temporary Databases
      How temporary database management affects performance
      Using temporary tables
        Hashed (#) temporary tables
        Regular user tables
        Worktables
      Temporary databases
      Session-assigned temporary database
      Using multiple temporary databases
        Creating user temporary databases
        Configuring a default tempdb group
        Binding to groups and tempdb
          Binding applications and logins to temporary databases
      Tuning system temporary databases for performance
        Placing system tempdb
          Initial allocation of system tempdb
          Dropping the master device from tempdb segments
        Configuring user-created temporary databases
          Caching user temporary databases
        General guidelines
          Using multiple disks for parallel query performance
          Binding tempdb to its own cache
          Determining the size of temporary databases
          Minimizing logging in temporary databases
          Optimizing temporary tables
      Logging optimizations for temporary databases
        User log cache (ULC)
  Performance and Tuning Series: Query Processing and Abstract Plans 15.7
    Understanding Query Processing
      Query optimizer
        Factors analyzed in optimizing queries
        Transformations for query optimization
          Search arguments converted to equivalent arguments
          Search argument transitive closure applied where applicable
          equi-join predicate transitive closure applied where applicable
          Predicate transformation and factoring to provide additional optimization paths
        Handling search arguments and useful indexes
          Nonequality operators
        Handling joins
          Join density and join histograms
          Expression histogramming selectivity estimates
          Joins with mixed datatypes
          Joins with expressions and or predicates
          join ordering
      Optimization goals
        Limiting the time spent optimizing a query
      Parallelism
      Optimization issues
      Lava query execution engine
        Lava query plans
          Lava operators
          Lava query execution
      How update operations are performed
        Direct updates
          In-place updates
          Cheap direct updates
          Expensive direct updates
        Deferred updates
          When deferred updates are required
        Deferred index inserts
        Restrictions on update modes through joins
          Joins and subqueries in update and delete statements
          Deletes and updates in triggers versus referential integrity
        Optimizing updates
          Designing for direct updates
          Effects of update types and indexes on update modes
        Using sp_sysmon while tuning updates
    Using showplan
      Displaying a query plan
        Query plans in Adaptive Server Enterprise 15.0 and later
          Why do I get different query plans for the same query?
      Using set showplan with noexec
      Statement-level output
      Query plan shape
        Query plan operators
        EMIT operator
        SCAN operator
        FROM cache message
        FROM or LIST
        FROM TABLE
          I/O size messages
          RID scan
          Log Scan
          DELETE, INSERT, and UPDATE operators
          TEXT DELETE operator
          Query plans for referential integrity enfor