Page tree
Skip to end of metadata
Go to start of metadata
ASE Traceflags
Not truly a trace flag, but passed to DBCC TRACEOFF to disable all active flags in all processes.
Print the parse tree after processing sql cmdtext   
Enable T/SQL lightweight procedures
Disable the raise of the warning messages 11732 and 11733
11732 is "Warning : Ambiguous correlation names in the set clause"    
11733 is "Warning : Ambiguous table to update; Using the table specified in the update clause." 
(obsolete as of ASE 12.0 GA).  Used to be required to enable the Alter Table Drop Column command, but is no longer needed.
(obsolete as of ASE 15.0 GA).  Prior to 15.0, caused ASE to only allow ASCII characters to be recognized in SQL keywords, numeric literals, and punctuation and to not allow equivalence mapping of non-ASCII characters.  See ASE Traceflag 114.
Allow equivalence mapping of non-ASCII characters to be recognized in SQL keywords, numeric literals, and punctuation.  Prior to 15.0 this was default behavior, but as of 15.0 only ASCII characters are allowed by default.
(not actually implemented as of 15.7 GA) Return more than just the first syntax error encountered during parsing.
Turn off the fix for CR 488239-1: Allow identity functions in SELECT INTO statements containing the UNION operation even though this might result in unexpected or duplicated identity values. See KBA 2738577.
Disable the fix for 813547 which caused a regression that led to the sourcecode stored in syscomments.text having incorrect SQL for sequential conditional DML statements.  See KBA 2749949 for details.
Print the query tree before optimization
Used for analysis of renormalization recompilation.  Prints  information on when and why renormalizing or recompiling was required.  See also traceflag 7755
Disable column expansion (converting "select *" to "select col1, col2, ..., coln") in source code stored in syscomments.
244(plus)Cause the str_replace() function to return a result with a default length of 16384 rather than 255 when the result length is otherwise unknown at compile time.
Suppress error 11055 "Query contains an illegal outer-join request." for correlated Sybase outer joins.
Turn off bugfix 55952. This traceflag causes ASE to try to open temp tables by name if they cannot be opened by id.  This avoids the overhead of recompiling the stored procedure, at the risk of running into problems if the schema for the temp table is not what was expected.
Turns off OR strategy for "special or" strings
Disable at boot time the fix for CR 71058 which made "Not Equal" and "IS NOT NULL" operators sargable but not indexable.  In ASE 11.0, the fix for CR 71058 caused ASE to use an less efficient OR strategy in some cases, so the traceflag was used to turn off that change.
Disable reformatting. (From the Performance and Tuning Guide: "Reformatting refers to materializing the inner side of a nested join into a worktable, then creating an index on the joining predicate.")
Make console output blocking (default is non-blocking). See KBA 2022013
If enabled, disables the fix for CR 560331 and will turn on eager evaluation of expression virtual VARs that have TXTPTRs as inputs.
If enabled, turns off the basic_optimization path for queries which are unable to go through  Compatibility mode (fastpath).  Introduced in 15.0.3 ESD #1
Causes GROUP BY results on 32 columns or less to be sorted as if an ORDER BY had also been done, similar to default behavior prior to 15.0.
Converts cursors that would have materialized their result sets in pre-ASE 15 and do not do so in ASE 15
into insensitive cursors to uncouple the result set data from the source tables as in ASE 12.5.
When this flag is set, statements referencing temp tables will not be cached in statement cache. 
Turns off early placement of worktables in the query tree for subquery reformatting.
Turn off subquery result caching. Used as a workaround for CR 814478.
Fix subquery cache size at 5 rows.
For internal debugging purposes, causes a 20 second delay after creation of a new query plan. 

Obtain the textptr home location exclusive lock earlier (before updating/deleting LOB) than would normally be the case. This should reduce the likelihood of deadlocks produced when two tasks simultaneously UPDATE and SELECT text/image data  from the same row. For APL tables, use of this trace flag may be counter-productive because deletion of any non-clustered index  entries will be done with this lock held.  The exclusive lock may therefore be held for an unacceptably long time, and may hence cause more deadlocks
By default, when a 694 or some variants of a 697 error occur ASE automatically turns on traceflags 829 and 830 to perform diagnostic checks for a corrupted page being read from or written to disk.  The 615 trace flag stops ASE from automatically turning on these traceflags.
Turn off some blocking optimizations for uncommitted inserts in datarows tables and uncommited updates on unmodified columns.  i.e. causes uncommitted datarows inserts to block other sessions.
(Introduced in 12.5.1, obsolete as of 15.0.1).  Disabled the fix for CR 288522.
Initialize freed memory blocks. Useful for diagnosing potential memory corruption.  The extra processing will reduce performance to some degree, how much depends on the applications being run.
Turns off engine local memory optimization
Turn off the proc_hdr memory mismatch warning to avoid filling up the errorlog.
Disable large allocation auto tune in memory manager
Do not use this trace flag.  If you find it on, turn it off.
Reduce scale down for large allocation autotune by replacing a procedure before scaling down. This is expected to reduce a performance drop in an ASE with a large and almost full procedure cache.  Introduced in 15.0.2 ESD 3.
Enable large Engine Local Cache (ELC) memory (4k, 8k and 16k pages) feature. Introduced under CR 652106-2 in ASE 15.7 ESD 2 and higher.
Do expensive engine local cache (ELC) checks.
Protect Engine Local Cache (ELC) pages using mprotect (available on non-NT systems only).
Validate the cache after a dynamic cache operation.
 Perform a sanity check after a read from disk. Print diagnostics on failure.  ASE turns these flags on automatically after certain errors.  See traceflag 615.
 Perform a sanity check after a write to disk. Print diagnostics on failure.  ASE turns these flags on automatically after certain errors.  See traceflag 615.
While this trace is on, the QUIESCE DATABASE command will not raise message 880 "Your query is blocked because it tried to write and database '%.*s' is in quiesce state. Your query will proceed after the DBA performs QUIESCE DATABASE RELEASE". This is to prevent issues with applications that aren't yet written to handle this message.
Diagnostic: output an error message when adding a new page for a log and it is discovered the buffer is already marked destroyed.
Disable optimistic/lockless latching of buffers.
Enable additional error checking when attempting to predirty a destroy buffer. Introduced under CR 819340 in 16.0 SP02 PL09
 Enable LRU Linking Integrity check.  Introduced under CR 737543 in 15.7 SP110.
 Allow logins with OPERATOR_ROLE use databases that are in DBO USE ONLY mode.
Allow 'use db' to succeed, so that any login with sa role or 'own any database' previlege can do some diagnostics in a database
that was not, yet, onlined. This allows one to peek at data structures in an older version db to debug upgrade issues.
 Turn off large extent allocation (aka Large Scale Allocation (LSA) ).  A possible workaround to CR 551797.
Causes 1105 errors to be sent to the errorlog.  By default, 1105s are sent just to the client.  The result is similar to running "sp_altermessage 1105, 'with_log', true" although the traceflag raises the error with state 1 while sp_altermessage  shows state 2.  The traceflag predates the sp_altermessage functionality.
Suppress runtime 1151, 1152 and 1153  errors which can result from running sp_spaceused (or other callers of OAM builtin functions) in a volatile database.
Suppress diagnostic message 1157 raised when a DOL datapage header field insert-free-space has been detected as incorrect and is recalculated.
To the extent possible, avoid taking SH_INT locks for functions that read an OAM prior to checking OAM for the relevant page counts.
Print process id and type of lock requested.
Insert blocked lock requests in syslocks, which by default only displays granted locks.
Print out deadlock chains and victim.
Trace every lock acquisition and release. 

Enable object and user level lock statistics monitoring.   See SAP ASE 16.0 Reference Manual: Procedures > sp_object_stats

Acquire SH_PAGE locks on index pages even if the <for update> clause is specified for the cursor.
Trace every lock acquisition and release for user tables only.  Like 1212 but less output due to ommitting the system catalog overhead for accessing tables, checking permissions, etc.
Print SHOWPLAN output to errorlog on deadlock. Only works if traceflag 1204 is also on.
Send deadlock information to errorlog with the line header containing engine, spid, timestamp, etc. Works only if 1204 is also on.
Enable parallel sort for work tables. This will bypass page count heuristics in psort_decision(). Useful for testing.

Enable huge pages (feature available on Linux pSeries only).  Traceflag no longer needed as of ASE 15.0.3 ESD#1 (CR 472272); ASE now uses huge pages by default
Disable updates to config file at shutdown to avoid writing the current bucket pool changes.

Disable the 590800-1 fix. With this trace flag,  error msg 2116 is not raised when creating a trigger that selects from a TEXT/IMAGE/UNITEXT or off-row Java datatype column of an inserted or deleted table.

Message 2116 is " CREATE TRIGGER failed because selecting from a TEXT, IMAGE, UNITEXT or off-row Java datatype column of the inserted or deleted table is not supported."

 Allow data fragments in a template database  (or model) to be copied onto a data segment  in the target database.
Print steps in platform-specific high availability (HA) DLL. 
Print row diagnostics when collocate() finds a bad column length.
 Bypass syslogs when doing checkalloc().  This will avoid spurious errors on syslogs.
Prints additional diagnostic information when error 290024 "invalid col length" is raised. This error presents difficulties because it doesn't indicate which page or even which database the problem is happening in.  The traceflag causes ASE to output the spid's current query plan and the contents of each open SDES, from which the current page number(s) being accessed can be determined (scur->pageid).
When creating a table, check that value supplied for columns defined with a default value matches the column type (i.e. raise an error for cases like a string being provided as the default for a numeric datatype column). 
Enable fix for CR 475139-1 to sleep on the DES_CLONED_STATE of the DES.
On every read from sysprocedures, behave as if upgrading compiled object (i.e. rebuild query tree from source code text stored in syscomments).  Having this traceflag on can result in "Error fetching results for query: " errors during upgrade. 
Outputs beginning and ending times for DUMP operations.  Use with 3604 to send output to client or 3605 to send output to errorlog
Allows the load of a master database which was dumped with a different sort order/charset to the sort order/charset currently in use on the server.
Mark non-clustered indexes on system tables suspect during cross-platform load database. 
This flag can to be used if an upgrade failed due to index-related errors, and needs to be turned on for both LOAD DATABASE and ONLINE DATABASE.
The suspect indexes can then be fixed after the upgrade using sp_fixindex.
During recovery, do not use the strategy that minimizes the phase 1 redo pass.
Rather, force the redo pass to visit every log record in phase 1.
Print diagnostic information during recovery. 
In addition to general information about recovery, statistical information relating to recovery scans and the usefulness of PFTS are reported.
The output is similar to that generated by DBCC showrecovery.
Recover only the system databases and tempdb.  No user databases are recovered.
Parallel recovery will spawn as many threads as indicated by the config parameter without  verifying that there are at least that many engines available. 
Performance will degrade if the number of recovery threads is larger than the number of engines.
Used when (usually by accident) the master database has been set to "bypass recovery" mode.
If this trace flag is on, recovery will clear the 'bypass recovery' bit for the master database and recover master normally.
Skip post commit optimization dune under CR 422687. 
 Allow recreation of sp_do_poolconfig during recovery.
 Print a message to the console every time a checkpoint is written for a db.
The checkpoint process wakes up once a minute and looks at each database to determine if a checkpoint should be issued. 
In a normal online database, the checkpoint process decides this by looking at how many log records have been added since
the most recent checkpoint and compares that to the value for the sp_configure setting "recovery interval" multiplied by 6,000. 
If this traceflag is set, the checkpoint process ignores the recovery interval setting and checkpoints the database even if there are fewer new log records. 
Print a stack trace when any error is output using the internal ex_raise() function call.  i.e, outputs stack traces for some errors, but not all. 
Simulate connection receiving an interrupt signal while executing any command.
Send DBCC output to client (by default, output goes to ASE console [the terminal ASE was started from])
Send DBCC output to errorlog (by default, output goes to ASE console [the terminal ASE was started from])
Boot ASE without recovering any databases. (Used to get access to system table data, in their current state, when master recovery fails).
Boot ASE recovering only the master database. (Allows SA to resolve recovery issues on other databases).  See also trace flag 3438 for recovering only system databases.
 Cause division by zero to return a null value rather than fail with a 3607 error.  A warning message that division by zero occurred is still output.
Disable datachange counter maintenance
 Collect MDA related counters for system tables.  By default, these counters are not maintained.  See KBA  2751736 for an example of use.
 Print text of SQL statement being executed when a Resource Governor limit is hit and the action is abort statement, abort transaction, or terminate session.
Disable improved stack overflow introduced under CR 753525
System wide trace flag used to print full stack when aborting transaction due to guard page overflow.
Enable Job Scheduler task 'log everything'
Allows dropping the sysdams system table.  Used when downgrading below 15.7 SP100 or using dbcc dam with the "drop" option. Not needed after 15.7 SP130 or 16.0 SP01.
Disable performance enhancement of runtime rollbacks and crash recovery of long running skewed transactions.  This trace flag is a workaround for CR 778707. See KBA 2252721.
In 15.7 (SP100 and higher), disables 'Transaction (page, rowid) is being rolled back using an optimized scan' message.  In 16.0 message is not output by default and this traceflag is used to enable the message.
Enable post commit shrink on older versions where is was disabled by default.  See KBA 2276464.
Disable post commit shrink on newer versions where it is enabled by default..   During normal operations, if a transaction deletes the last entry off of an index leaf page, that page is put in a queue for the Housekeeper to clean up (deallocate).  If  traceflag 3993 is on, empty pages are not put in the housekeeper queue when the transaction commits.  Note that the first leaf page of every index is never deallocated even if it becomes empty.  See KBA 2276464.
Log the login packet (loginrec) in the ASE errorlog when users log in.
 Log an informational message to ASE errorlog whenever an interrupt routine is interrupted (UNIX signal SIGURG and SIGALRM interaction)
Boot ASE without recovery. Used to access master database system table contents (in a possibly inconsistent state) for purposes such as manually rebuilding a server when recovery of the master database fails and no backups are available.
Obsolete as of ~, still works but superseded by the more general dataserver -u loginname parameter.  Allow sa to login in even if account is locked.  The dataserver -u parameter works for any login that has sa_role or sso_role.
Enable new soundex() behavior. 
Use alternative atof() function for converting strings to floating point numbers.
Disables some checks on floating point values that prevent insertion of non-number values such as INF, Nan, and negative zero.  Largely for backward compatibility, by default ASE does not allow such values, nor does the ANSI SQL standard.
Boot-time flag.  Disable global login trigger.
 Disable console logging if nonblocking setup fails. See KBA 2022013.
Disable correct interpretation of closing brackets for LIKE, enabled under "enable functionality group" configuration setting. 
Restore pre-407169 behavior i.e. bulk insert is fully logged if the table has indexes or triggers.  (CR 407169 "SLOW bcp into heap tables i.e. all cases except APL tables with clustered index, will behave like FAST bcp and do minimally logged updates when the db option 'bulk copy' is turned on." was introduced in ASE 15.0.2 GA.)
Enables verification of the row format when data is read by netscan operator (rows formatted by the client)
Enables DISK RESIZE to accept a negative size value, causing the device to shrink if there is unused space at the end of the device. Introduced under CR 811919 in 16.0 SP02 PL08 and 16.0 SP03 PL06.
 In and higher, disables the large io and large allocation changes made under CR 279883-1. Description of CR "Performance enhancements made to SELECT INTO by making use of large I/O and extent allocation for the target table, wherever possible. As a result, SELECT INTO may choose the largest I/O size possible for the target table, based on the size of the buffer pools available in the target database cache. ASE will have this option on by default. ASE requires the use of -T5304 to activate this enhancement."
Do not set ASTC_DTX_RESOLVE_PENDING bit during boot-time. Must be used only in extraordinary circumstances when we know what we are doing. This trace flag has been added to provide work-arounds for situations that are otherwise impossible to resolve.  Recommended that you only use this on the advice of SAP Product support.
Fix uninitialized TIPSA flags when reading text pages. Currently (16.0 SP03 timeframe) it can only clear garbage flag TX_TIPSA_COMPRESSED.
Disable the fix of CR 783192 that QPTXTPTR has RID.  Currently, it is only used for NULL TXTPTR.  See KBA 2878406.
Force the server to calculate unreserved pages for all segments at the end of recovery by scanning all the allocation pages.
Print a message whenever the status of dbt_threshstat changes.
Force the server to calculate the unreserved pages (free space accounting) at the end of recovery even when the serve had been shutdown politely,
using newer (and usually faster) OAM page scan method to calculate the unreserved pages
Force the server calculate the unreserved pages (free space accounting) in the log segment at the end of recovery even when the serve had been shutdown politely, using a scan of the log segment allocation pages.
Force the server calculate the unreserved pages (free space accounting) in the data segment at the end of recovery even when the serve had been shutdown politely, using a  scan of *data* segment allocation pages.
If a data free space recalculation is needed due to a non polite shutdown (vs using above forcing trace flag 7403, 7406 or 7409), then do not let the system decide which scan method to use; rather always perform a full AP scan.
The Allocation Page scan for free space recalculation can be optimized by skipping the read of allocation pages for which GAM bit is set. Use this trace flag to disable this optimization that was introduced by CR 775488.
Allows the audit process to skip getting the audit lock in case of running out of locks
Turn off CR 210688. Do not protect local variables being on resdom and source/qualification side.  WARNING : should not be removed without providing some other way to obtain pre-210688 functionality.  Documented behavior for variable assignment in a SELECT is that the variable should be assigned the last value returned.  However, prior to the CR 210688,    SELECT @x = @x + mycolumn from mytable would result in a sum of all the values in mycolumn being added to @x rather than just the previous value of @x plus the column value from the last row.  CR 210688 made ASE behave as documented, this trace flag returns to the previous behavior.
When set, turn off large identifier capability checks that normally prevent pre-15.0 clients from connecting to 15.0 and later servers, which allow object names that are longer than the pre-15.0 limit.  This trace flag allows such older clients to connect to ASE as they did before.  If using this traceflag, do not allow creation of objects with long names if there is any chance of such older clients referencing the objects.  The flag would allow the long name to be sent to the pre-15.0 client, which would not be able to handle it properly. 
 Force a temp table to be orphaned for testing that HK Chores garbage collects the table.  Also used as a workaround for CR 767295
Switch OFF deferred compilation. Used as a workaround for CR 490570, fixed in 15.0.2 ESD #3
Enable literal parameterization for strings in LIKE patterns and escape clauses
Enable the fix for 497118 and 595550 so NULLs sent in host parameters are allowed even with incompatible datatypes and statement cache active. As a side effect, statements with NULL values in host parameterss are not entered in the statement cache.

Do not cache parameterized language statements having parameters with numeric values that do not match the parameter format.
Can be used with trace flag 214 to log the text of a procedural SQL statement which leads to the recompilation of a procedure.
Disable the fix for CR 644994 (" Under some conditions, for example reset or reconfigure 'parallel degree', statement cache clean up issues and memory leaks may occur and it could also make the purge statement cache entry impossible due to ssql_keep > 0.". This traceflag is listed as a possible workaround for CR 802852 (Infected with 11 in s_unsave_kept_stmts), see KBA 2453655
Turn off the fix for CR 653511-1.
Do not parameterize literal for large IN LISTs ( > 128) and do not cache such statements.
Disable the fix made in CR 723847-1 to handle the cases SELECT INTO and INSERT SELECTs which use UNION statements terminated by UNION ALL.
Disable caching of large statements  (16k<size<2M) in statement cache. This will help avoid fragmentation due to statements with IN clauses with many elements. .
Enable the fix for CRs 497118 and 595550.
 Ignore 213 error under deferred compilation and revert to normal compilation.  Introduced in 15.7 SP130, 16.0 SP01.
Disable NETMNE. 

Suppress printing of TDS invalid header messages.  See KBA  2184741 - Meaning of log messages including ksmask__rpacket & Invalid tdslength in ASE

Print RSA key pair pool management information
Disable feature that disables input checking on a socket which has pending network input, has no read posted and does not allow read ahead
Trace SSL handshake errors. See KBA 2633020
Turns off reporting of 1608 errors to the ASE errorlog.  New as of 16.0 SP03 PL07.  Not available in 15.7
Turns off the fix for CR 414943.  This CR modifies the way parameters with a NULL value are passed by RPC to avoid unexpected 16130 errors.
Turn off Chargeback Accounting
Ignore absence of systabstats rows while getting table DEScriptor for update statistics command.  Workaround for Error 15601 "Failed to cache systabstats contents for database 'db_name' (dbid), object 'table_name' (object_id). ".  New as of 15.7 ESD 1
Disable Pdes lookup structures handling for performance enhancement
Log in monSysSQLText the full text of strings passed to execute immediate.   New as of ASE 15.7 SP130.
Obsolete as of 12.5.2 due to CR 323550.  No longer has any effect.  Previously used to populate the field_name column in the sysmonitors table, but this was made default behavior.
When enabled the catalogs are no longer accessed using dirty reads (which is the default mechanism).
RAT-CI trace flag to disable the auto-scaling and throttling feature for the buffer pool resource in CI.
Conditionally collect RAT counters related to execution time.
Causes ASE to not store a password in the XREC_BEGINXACT log record, normally done for replication of DDL (data definition language). This trace flag is for use with dbcc logtransfer only. However a task executing DDL doesn't know which scanner, either RAT or dbcc logtransfer, will be reading the log records.  If this flag is on, RAT will encounter errors replicating operations such as DDL replication or request functions.
 Used to activate additional trace outputs in some instrumented dataserver binaries.
Trace general Replication Agent execution path (most information traced).
Traces LTL commands sent o the Replication-Server.
Traces truncation point manipulation.
Traces log records encountered during scanning. Display markers and "logop".
Traces memory usage of the Replication-Agent thread.
Display "Open" transaction in the Replication-Agent thread's transaction context.
Continue tracing insertions and deletions to the transaction context.
Traces execution of Replication-Agent thread in recovery mode.
Forces Replication-Agent thread's schema cache to be flushed.
Traces inserts and deletes from Replication-Agent thread's schema cache.
Displays all important fields of the Replication-Agent thread's context.
Traces when and why Replication-Agent thread sleeps and wakes up.
Traces the processing of update statements.
Displays the page and row of the delete and insert log records that comprise the update.
Displays the before and after images.
Traces the processing of the text and image replication.
Display text and image context structures and display the page and row of the text and image log records that are processed.
Bypass ctlib calls
Scan updates using the old forward scan method
Trace log records skipped
Trace CT/Svr lib errors
If set, rat will not stop replication when finding a corrupt log record, instead it will print 9290 error and attempt to continue.
Disables the fix for CR 770237
Traceflag to enable CR 586499.   On the Solaris platforms, ASE may report "Unexpected AIO error(Invalid argument)returned from aiowait()." when LDAP User Authentication is enabled (configuration option 'enable ldap user auth' is set to 1 or 2) and ASE is performing multiple user authentication simultaneously. This bug can be resolved by installing patch for Solaris BugID 6972029 (contact Oracle for the OS patch, sun sparc: 144190-03, sun x64 144191-02). Alternatively, as a workaround, the issue can be resolved in ASE by enabling boot time trace flag 9415.
Dumps Lava operator execution statistics and resource use in a showplan-style format at the most basic level.
Print parameter values in in PCR tree. Used to check that the parameters have been correctly added to the tree.
Invoke set completion of object ownership methodology and object resolution from old procedural object ownership. (Not recommended).
Disable fix for CR 777215 if it is on.

With this traceflag ON, we revert to the older approach for handling autoparam with numeric datatypes in INSERT queries, which can use either a numeric (38,19) or a numeric(19,9).
With trace OFF (i.e. the current default behavior) we cast all numeric autoparams to (38,19) 
Implemented under CR 805165 in ASE 15.7 SP140 and higher, ASE 16.0 SP02 PL06 and higher, ASE 16.0 SP03 and higher.
Disables the fix for CR 805165 and enables the fix for CRs 813535 and 812823.  (Single cached plan for INSERT and UPDATE queries). 
Enable bootcount support for renormalization of stored procedures. When ON, procedure referencing temp tables will be renormalized at first eecution after reboot of ASE.

Disables fix for CR 767440, causing the isnumeric() function to return 1 for an empty string. Added in 15.7 SP142.

Enable rounding of the numeric values in INSERT/UPDATE queries.
Used in instrumented EBF for CR 821464; Flag is not active in other releases.
Used in instrumented EBF for CR 821464; Flag is not active in other releases.
Boot time traceflag 11297 on the local ASE to change error handling in Open Client layer 
Check if a pointer is null before make an open client library call. 
Adds numeric IDs to POP operators in SHOWPLAN output when "show normal", "show long", or "XML" options are active.  Used to make it easier to track POPs for very complex queries.
Use forceplan option to generate initial alternative greedy plan (CR 813639-1). This traceflag only works when alternative greedy option is on.
Avoids the generation of the join poplet during alternative greedy AP application phase.  Workaround for CR 80608, see KBA 2593791.
Disable light-weight permission check for dynamic SQL statements.
Output reason why a lava plan is not qualified for being a simplified native access plan (SNAP) candidate or SNAP execution.
In 15.7 GA, functionality was added to the REORG COMPACT command to clean up the empty OAM entries reported by error 15082.  However, this new functionality requires a new shared table lock.  If this traceflag is turned on the new functionality is skipped to avoid taking a shared table lock and the empty OAM entries will not be cleaned up.  This traceflag becomes available in15.7 ESD 2 and higher.

"Omni Server / CIS" Traceflags 11201 - 11229 are formally documented in the Component Integration System (CIS) Users Guide
Logs client connect events, disconnect events, and attention events. (global). Events sent to error log only.
Logs client language, cursor declare, dynamic prepare, and dynamic execute-immediate text (global). Text sent to error log only.
Logs client RPC events (global). Events sent to error log only.
Logs all messages routed to client (global). Messages sent to only the error log.
Logs all interaction with remote server (global). Interaction sent to error log only.
Logs file/directory processing steps. (global)
Logs text and image processing. (global)
Prevents the create index and drop index statements from being transmitted to a remote server. sysindexes is updated anyway. (spid)
Instructs update statistics to obtain only row counts rather than complete distribution statistics, from a remote table. (spid)
Prevents the drop table syntax from being forwarded to remote servers if the table was created using the create table at location syntax.
Prevents escape on underscores (“_”) in table names. (spid)
Prevents generation of column and table constraints. (spid)
Disables Component Integration Services recovery at start-up. (global)
Disables quickpass. (spid)
Disables quickpass. (global)
Makes cursors involving Component Integration Services tables updateable by default.
Disables constraint checking of remote tables on the local server. This avoids duplicate checking. Setting this trace flag on ensures that queries are not rejected by the quickpass mode because of constraints. (spid)
Disables alter table commands to the remote server when ON. This allows users to modify type, length, and nullability of columns in a local table without changing columns in the remote table. Use trace flag 11221 with caution. It may lead to tables that are “out of sync.” (spid)
Disables proxy table index creation during create existing table or create proxy_table command execution. If this flag is set on, no index metadata is imported from the remote site referenced by the proxy table, and no indexes for the proxy table are created. This trace flag should be used with care and turned off when no longer necessary. (global)
Disables proxy table mapping to RPCs.
Instructs Component Integration Services to use pre-Adaptive Server version 12.5.3 methods of gathering statistics data.
Enable ctlib api checking.  Used at the direction of tech support to generate diagnostics for some issues.
Allows connection information to be logged when a connection to a remote server fails.
(introduced in 15.7 ESD 2, obsolete as of 15.7 ESD 4).  Enables CR 610956 feature that enables caching of dbtables in the PSS structure to reduce contention on the dbt_spin spinlock. This feature was made default behavior in 15.7 ESD 4.
(introduced in 15.7 ESD 4) Disable optimization for caching dbtables in user processes.
Enable dirty read for insert if the current session isolation level is 0. All the source tables in an INSERT...SELECT... query will be dirty read.
Disables suffix compression on CREATE INDEX 
Enable recovery fault isolation (RFI) module to handle  all errors during recovery.
Print diagnostic information on in-memory growing column statistics
Disable online create index in parallel
Disable random temp table name generation. Added in 16.0 SP03 under CR 806272
Provide additional validation for the free offset on APL table, before performing delete or update on the APL page. This validation is done by default on the diagserver binary,
but must be turned on with TF 14325 for dataserver.  If the validation encounters an issue, a message is output to the errorlog:
"<function_name>: Object Id: <number>, Page number: <page number>, offset expected: <offset> offset found: <offset>"
Ignore 'set forceplan on'
ignore index/parallel/prefetch/LRU-MRU hints
Disable the fix for CR 589650 to correct semantic checks for whether a store_index operator is still required when the algorithm has been disabled.
If enabled, disables the fix made under CR 569947-1 and "opens up" the original fix 497066 to all ISNULL references. The CR 569947-1 fix was limiting the CR 497066 changes to only the ISNULLs under a SUBQOP transformed predicate under a subquery to avoid behavior regressions.

Rewrite the query into an EXISTS query for those tables which are not in referenced in the SELECT list

 Disable fix for 497066, which infers the  nullability of isnull() builtin by looking at the nullability of its parameterss.
Enables server wide, no matter advanced_aggregation (new in 15.0.2)
Disables server wide, no matter advanced_aggregation (new in 15.0.2)
Activate the fix for CR 767390 "There may be a performance difference between pre SAP ASE 15.0 servers and post SAP ASE 15.0 servers due to the evaluation order of multiple subqueries on the same operator. Optcriteria cr767390 was introduced to order the subquery evaluation, when evaluated on the same operator, in the order that they were written in the query."
This fix was introduced in 15.7 SP131 around 2014.
Turn off intelligent index scan costing.
(server level) or set alternative_greedy_search off at session level
Suppress warning message regarding the ignoring of hints when using abstract plans. (introduced in 15.7 ESD 4.2, 15.7 SP100, and 16.0 GA)
 If enabled, turn off internal heap inside OptPool (pheap_cpp) so some memory will not be reused during the optimization process.
 If enabled do not add partial blocks (less than a full mempage) to the internal optimizer heap (pheap_cpp)
Turn off psuedo scan generation for large-IN lists during lop generation phase.
(introduced in 15.0.3 ESD 4, 15.5 ESD 2, and 15.7 GA). Turn on fix for CR 628845 to avoid table scans/sorts in parallel when top level bmo sorts can be consumed by an order by.
(introduced in 16.0 SP02 PL05).  When enabled, suppresses showplan output when executing system stored procedures (procedures from either the master or sybystemprocs databases with a name that starts with "sp_" or "xp_".
Enable parameterized sql text in abstract plan load and dump. Parameterized SQL text with its abstract plan will be saved in sysqueryplans. For example: SQL text is: "select count(*) from sysobjects where id > 10". Parameterized text is: "select count(*) from sysobjects where id > @@@V0_INT". All SQLs with text "select count(*) from sysobjects where id > " will now share the same abstract plan in sysqueryplans. . (This traceflag was implemented under CR 779357 in 16.0 SP01 PL03 and higher, 16.0 SP02 PL03 and higher, 16.0 SP03 GA and higher.).
Disable the fix for CR 795426 "The built-in function REPLICATE (char_expr | uchar_expr, integer_expr) may return an incorrect result when turning TF 244 off and integer_expr is a constant expression."
Enables fix for CR 671437-1 which corrects over optimistic costing of serial query plans. Introduced in 15.5 ESD 5.
Disable CR 752225 change to allow alternative greedy algorithm to process queries with greater than 32 GROUP BY columns.  
See KBA 1991717 "Crash when SQL has many columns in its GROUP BY clause."
When enabled, will disable the removal of filter predicate for special OR scans implemented under CR696676-1. 
Disable 669847 change to fix missing EXISTS requirement on producer lop in non-functional update.
Enable like optimization for patterns containing more than one parameterized value or variable ("? + ? pattern").
(Introduced in 15.7 SP111 under CR 757177). See KBA 2854142
Don't output parameters when printing sql text. Traceflag 17013 may be tried as a workaround to issues causing a stack trace containing function prE_PARAMs_buf().
Introduced in 16.0 SP03 PL12 and 16.0 SP04 PL03 under CR 825970.  See KBA 3134686.

Disable CR 825859 "SAP Adaptive Server is enhanced on Linux platform, to support booting with variable percentages of available huge page memory and remaining regular page memory.

  • 15355
  • 16872

More commonly used traceflags that aren't formally documented. Unsupported trace flagsTrace flags influence Adaptive Server behavior or correct issues. However, some trace flags display unexpected behavior, and all trace flags require caution. Many trace flags are specific to Adaptive Server release 12.5.x and are not necessary for Adaptive Server 15.0. Table 4-1 describes some of the commonly used trace flags and their relevance to Adaptive Server 15.0. Before you discontinue using a trace flag, check with Sybase Technical Support, because the trace flag may be used for purposes other than those listed here.
Table 4-1: Commonly usedtraceflagsTraceflag
In 12.5.x?
In 15.0?
Additional remarks

291When enabled, predicates using the form col1 <relop> fn(col2)--where the datatype of col2 is listed higher than that of col1--cast the expression f(col2) to the datatype of the lower type (in this case, col1).YesNoFunctionality included in Adaptive Server 15.0
333Disables min-max optimization.YesNoNo longer supported
364Uses range density instead of total density.YesNoNo longer supported
370Uses min-max index as an alternative to the table scan for single-table queries. Does not perform aggregation optimization for joins.YesNoNo longer supported
396Uses min-max optimization for single-table queries.YesNoNo longer supported
526Prints semi-graphical execution operator tree when showplan is enabled.NoYesFunctionality included in Adaptive Server 15.0

 Adaptive Server 15.0 discontinues the 300 series diagnostic trace flags (302, 305, 308, 310, 311, and so on), and these will be deprecated in a future release. They are replaced with showplan options, which provide better diagnostic and more readable output.For information about tools for investigating optimizer decisions, see Query Processing in Adaptive Server.