using System.Collections.Generic;
using System.Diagnostics;
static double Profile(string description, int iterations, Action func)
var watch = new Stopwatch();
GC.WaitForPendingFinalizers();
for (int i = 0; i < iterations; i++) {
Console.WriteLine(description);
Console.WriteLine(" Iterations {0} ", iterations);
Console.WriteLine(" Avg Time in milisecs {0} ", watch.Elapsed.TotalMilliseconds/iterations);
Console.WriteLine(" Avg Time in microsecs {0}", watch.Elapsed.TotalMilliseconds*1000/iterations);
return watch.Elapsed.TotalMilliseconds;
static void Main(string[] args)
var how_many_iterations_to_run = 1000;
var sqlLiteral = "SELECT col1, AVG(col2) FROM table1 t1 WHERE t1.key = '000' GROUP BY 1 HAVING AVG(col2) > 0 ORDER BY 2;";
IDictionary<string, int> result = null;
Profile("Benchmark for GetKeywordsCount with words Dictionary", how_many_iterations_to_run, () =>
result = GetKeywordsCount3(sqlLiteral);
Console.WriteLine("Keywords Count: {0}", result.Count());
foreach (var keyword in result)
Console.WriteLine($" {keyword.Key} : {keyword.Value}");
static IDictionary<string, int> GetKeywordsCount3(string sqlStatement)
var keywordOccurrences = new Dictionary<string, int>();
var sqlKeywords = GetSqlKeywords();
var words = GetWordSequence(sqlStatement).ToArray();
var stack = new Stack<string>();
for (var q = 0; q < max && w < words.Length; q++, wi++)
for (var l = stack.Count; l > 0; l--)
var word = GetWordFromQueue(stack, l);
foreach (var keyword in sqlKeywords)
if (keywordOccurrences.ContainsKey(keyword))
keywordOccurrences[keyword] = keywordOccurrences[keyword] + 1;
keywordOccurrences.Add(keyword, 1);
for (var i = 0; i < l; i++)
for (var q = 0; q < max && w < words.Length && wi < words.Length; q++, wi++)
return keywordOccurrences;
static string GetWordFromQueue(Stack<string> stack, int len)
while (stack.Count > len)
return string.Join(" ", stack.Reverse());
public static IEnumerable<string> GetWordSequence(string sentence)
var words = new List<string>();
while (!string.IsNullOrEmpty(sentence))
var word = new string(sentence.TakeWhile(Char.IsLetterOrDigit).ToArray()).ToUpper();
sentence = new string(sentence.Skip(word.Length).SkipWhile(c => !Char.IsLetterOrDigit(c)).ToArray());
public static IEnumerable<string> GetSqlKeywords()
"ADD COLUMN IF NOT EXISTS",
"ALTER ACCESS POLICY ON",
"ALTER AGGREGATE FUNCTION",
"ALTER ANALYTIC FUNCTION",
"ALTER COLUMN IF EXISTS",
"ALTER COMPOUND SORTKEY",
"ALTER DATABASE PARTITION GROUP",
"ALTER DEFAULT PRIVILEGES",
"ALTER DEFAULT PRIVILEGES FOR ROLE",
"ALTER DEFAULT PRIVILEGES FOR USER",
"ALTER DISTSTYLE KEY DISTKEY",
"ALTER FOREIGN DATA WRAPPER",
"ALTER FOREIGN TABLE IF EXISTS",
"ALTER FOREIGN TABLE ONLY",
"ALTER HISTOGRAM TEMPLATE",
"ALTER IDENTITY PROVIDER",
"ALTER LOAD BALANCE GROUP",
"ALTER MATERIALIZED VIEW",
"ALTER MATERIALIZED VIEW IF EXISTS",
"ALTER NETWORK INTERFACE",
"ALTER SCHEMA IF EXISTS",
"ALTER SECURITY LABEL COMPONENT",
"ALTER SEQUENCE IF EXISTS",
"ALTER SPECIFIC FUNCTION",
"ALTER SPECIFIC PROCEDURE",
"ALTER TABLE ALL IN TABLESPACE",
"ALTER TEXT SEARCH CONFIGURATION",
"ALTER TEXT SEARCH DICTIONARY",
"ALTER TEXT SEARCH PARSER",
"ALTER TEXT SEARCH TEMPLATE",
"ALTER TLS CONFIGURATION",
"ALTER TRANSFORM FUNCTION",
"ALTER USER MAPPING FOR",
"ALTER USER MAPPING PUBLIC SERVER",
"ALTER USER MAPPING USER SERVER",
"ANSWER_QUERY_USING_STATS",
"APPROX_COUNT_DISTINCT_AGG",
"APPROX_COUNT_DISTINCT_DETAIL",
"APPROX_PERCENTILE_DETAIL",
"BATCH_TABLE_ACCESS_BY_ROWID",
"BINARY_DOUBLE_INFINITY",
"BYPASS_RECURSIVE_CHECK",
"CHANGE_DUPKEY_ERROR_INDEX",
"CLOSE_CACHED_OPEN_CURSORS",
"COLLECT DEMOGRAPHICS FOR",
"COLLECT STATISTICS FOR",
"COLUMN_AUTHORIZATION_INDICATOR",
"CONNECT_BY_CB_WHR_ONLY",
"CONTAINER_DATA_ADMIT_NULL",
"COST_XML_QUERY_REWRITE",
"CREATE ACCESS POLICY ON",
"CREATE AGGREGATE FUNCTION",
"CREATE ANALYTIC FUNCTION",
"CREATE AUXILIARY TABLE",
"CREATE CONNECTOR IF NOT EXISTS",
"CREATE DATABASE AUDIT SPECIFICATION",
"CREATE DATABASE ENCRYPTION KEY",
"CREATE DATABASE IF NOT EXISTS",
"CREATE DATABASE PARTITION GROUP",
"CREATE DATABASE SCOPED CREDENTIAL",
"CREATE DEFAULT CONVERSION",
"CREATE DIRECTED QUERY CUSTOM",
"CREATE DIRECTED QUERY OPT",
"CREATE DIRECTED QUERY OPTIMIZER",
"CREATE DUPLICATED TABLE",
"CREATE EDITIONABLE EDITIONING VIEW",
"CREATE EDITIONABLE FUNCTION",
"CREATE EDITIONABLE PACKAGE",
"CREATE EDITIONABLE PACKAGE BODY",
"CREATE EDITIONABLE PROCEDURE",
"CREATE EDITIONABLE SYNONYM",
"CREATE EDITIONABLE TRIGGER",
"CREATE EDITIONABLE TYPE",
"CREATE EDITIONABLE TYPE BODY",
"CREATE EDITIONABLE VIEW",
"CREATE EDITIONING VIEW",
"CREATE ENCODED VECTOR INDEX",
"CREATE EXTENSION IF NOT EXISTS",
"CREATE EXTERNAL FUNCTION",
"CREATE EXTERNAL SCHEMA",
"CREATE EXTERNAL SCHEMA IF NOT EXISTS",
"CREATE EXTERNAL TABLE IF NOT EXISTS",
"CREATE EXTERNAL TEMP TABLE",
"CREATE EXTERNAL TEMPORARY TABLE",
"CREATE FLEX EXTERNAL TABLE",
"CREATE FLEX EXTERNAL TABLE IF NOT EXISTS",
"CREATE FLEXIBLE EXTERNAL TABLE",
"CREATE FLEXIBLE EXTERNAL TABLE IF NOT EXISTS",
"CREATE FORCE EDITIONABLE EDITIONING VIEW",
"CREATE FORCE EDITIONABLE VIEW",
"CREATE FORCE EDITIONING VIEW",
"CREATE FORCE NONEDITIONABLE VIEW",
"CREATE FOREIGN DATA WRAPPER",
"CREATE FOREIGN TABLE IF NOT EXISTS",
"CREATE FUNCTION IF NOT EXISTS",
"CREATE FUNCTION MAPPING",
"CREATE GLOBAL TEMP TABLE",
"CREATE GLOBAL TEMP TABLE IF NOT EXISTS",
"CREATE GLOBAL TEMPORARY TABLE",
"CREATE GLOBAL TEMPORARY TABLE IF NOT EXISTS",
"CREATE GLOBAL TEMPORARY TRACE TABLE",
"CREATE HCATALOG SCHEMA",
"CREATE HISTOGRAM TEMPLATE",
"CREATE IDENTITY PROVIDER",
"CREATE INDEX EXTENSION",
"CREATE LARGE TABLESPACE",
"CREATE LOAD BALANCE GROUP",
"CREATE LOCAL TEMP TABLE",
"CREATE LOCAL TEMP TABLE IF NOT EXISTS",
"CREATE LOCAL TEMP VIEW",
"CREATE LOCAL TEMPORARY TABLE",
"CREATE LOCAL TEMPORARY TABLE IF NOT EXISTS",
"CREATE LOCAL TEMPORARY VIEW",
"CREATE MATERIALIZED VIEW",
"CREATE MATERIALIZED VIEW IF NOT EXISTS",
"CREATE NETWORK ADDRESS",
"CREATE NETWORK INTERFACE",
"CREATE NO FORCE EDITIONABLE EDITIONING VIEW",
"CREATE NO FORCE EDITIONABLE VIEW",
"CREATE NO FORCE EDITIONING VIEW",
"CREATE NO FORCE NONEDITIONABLE VIEW",
"CREATE NONEDITIONABLE PACKAGE",
"CREATE NONEDITIONABLE PACKAGE BODY",
"CREATE NONEDITIONABLE PROCEDURE",
"CREATE NONEDITIONABLE SYNONYM",
"CREATE NONEDITIONABLE TRIGGER",
"CREATE NONEDITIONABLE TYPE",
"CREATE NONEDITIONABLE TYPE BODY",
"CREATE NONEDITIONABLE VIEW",
"CREATE NOTIFIER IF NOT EXISTS",
"CREATE OPERATOR FAMILY",
"CREATE OR ALTER FUNCTION",
"CREATE OR ALTER PROCEDURE",
"CREATE OR ALTER TRIGGER",
"CREATE OR REPLACE ALIAS",
"CREATE OR REPLACE ANALYTIC FUNCTION",
"CREATE OR REPLACE EDITIONABLE FUNCTION",
"CREATE OR REPLACE EDITIONABLE PACKAGE",
"CREATE OR REPLACE EDITIONABLE PACKAGE BODY",
"CREATE OR REPLACE EDITIONABLE PROCEDURE",
"CREATE OR REPLACE EDITIONABLE SYNONYM",
"CREATE OR REPLACE EDITIONABLE TRIGGER",
"CREATE OR REPLACE EDITIONABLE TYPE",
"CREATE OR REPLACE EDITIONABLE TYPE BODY",
"CREATE OR REPLACE EDITIONABLE VIEW",
"CREATE OR REPLACE EXTERNAL FUNCTION",
"CREATE OR REPLACE EXTERNAL TABLE",
"CREATE OR REPLACE FILTER",
"CREATE OR REPLACE FORCE EDITIONABLE EDITIONING VIEW",
"CREATE OR REPLACE FORCE EDITIONABLE VIEW",
"CREATE OR REPLACE FORCE EDITIONING VIEW",
"CREATE OR REPLACE FORCE NONEDITIONABLE VIEW",
"CREATE OR REPLACE FUNCTION",
"CREATE OR REPLACE LANGUAGE",
"CREATE OR REPLACE LIBRARY",
"CREATE OR REPLACE LOCAL TEMP VIEW",
"CREATE OR REPLACE LOCAL TEMPORARY VIEW",
"CREATE OR REPLACE MASK",
"CREATE OR REPLACE MATERIALIZED VIEW",
"CREATE OR REPLACE MODULE",
"CREATE OR REPLACE NICKNAME",
"CREATE OR REPLACE NO FORCE EDITIONABLE EDITIONING VIEW",
"CREATE OR REPLACE NO FORCE EDITIONABLE VIEW",
"CREATE OR REPLACE NO FORCE EDITIONING VIEW",
"CREATE OR REPLACE NO FORCE NONEDITIONABLE VIEW",
"CREATE OR REPLACE NONEDITIONABLE BODY",
"CREATE OR REPLACE NONEDITIONABLE PACKAGE",
"CREATE OR REPLACE NONEDITIONABLE PACKAGE BODY",
"CREATE OR REPLACE NONEDITIONABLE PROCEDURE",
"CREATE OR REPLACE NONEDITIONABLE SYNONYM",
"CREATE OR REPLACE NONEDITIONABLE TRIGGER",
"CREATE OR REPLACE NONEDITIONABLE TYPE",
"CREATE OR REPLACE PACKAGE",
"CREATE OR REPLACE PACKAGE BODY",
"CREATE OR REPLACE PARSER",
"CREATE OR REPLACE PERMISSION",
"CREATE OR REPLACE PROCEDURAL LANGUAGE",
"CREATE OR REPLACE PROCEDURE",
"CREATE OR REPLACE PROCEDURE IF NOT EXISTS",
"CREATE OR REPLACE PUBLIC ALIAS",
"CREATE OR REPLACE PUBLIC SYNONYM",
"CREATE OR REPLACE RECURSIVE VIEW",
"CREATE OR REPLACE ROW ACCESS POLICY",
"CREATE OR REPLACE RULE",
"CREATE OR REPLACE SEQUENCE",
"CREATE OR REPLACE SOURCE",
"CREATE OR REPLACE SYNONYM",
"CREATE OR REPLACE TABLE",
"CREATE OR REPLACE TABLE FUNCTION",
"CREATE OR REPLACE TEMP FUNCTION",
"CREATE OR REPLACE TEMP RECURSIVE VIEW",
"CREATE OR REPLACE TEMP TABLE",
"CREATE OR REPLACE TEMP VIEW",
"CREATE OR REPLACE TEMPORARY FUNCTION",
"CREATE OR REPLACE TEMPORARY RECURSIVE VIEW",
"CREATE OR REPLACE TEMPORARY TABLE",
"CREATE OR REPLACE TEMPORARY VIEW",
"CREATE OR REPLACE TRANSFORM FUNCTION",
"CREATE OR REPLACE TRIGGER",
"CREATE OR REPLACE TYPE",
"CREATE OR REPLACE TYPE BODY",
"CREATE OR REPLACE VARIABLE",
"CREATE OR REPLACE VIEW",
"CREATE PRIVATE TEMPORARY TABLE",
"CREATE PROCEDURAL LANGUAGE",
"CREATE PROCEDURE IF NOT EXISTS",
"CREATE PROJECTION IF NOT EXISTS",
"CREATE READABLEE EXTERNAL TABLE",
"CREATE READABLEE EXTERNAL TEMP TABLE",
"CREATE READABLEE EXTERNAL TEMPORARY TABLE",
"CREATE REGULAR TABLESPACE",
"CREATE REMOTE DATABASE",
"CREATE REMOTE DATABASE IF NOT EXISTS",
"CREATE REMOTE SCHEMA IF NOT EXISTS",
"CREATE ROW ACCESS POLICY",
"CREATE ROW ACCESS POLICY IF NOT EXISTS",
"CREATE SCHEMA AUTHORIZATION",
"CREATE SCHEMA IF NOT EXISTS",
"CREATE SEARCH INDEX IF NOT EXISTS",
"CREATE SECURITY LABEL COMPONENT",
"CREATE SECURITY POLICY",
"CREATE SEQUENCE IF NOT EXISTS",
"CREATE SERVER IF NOT EXISTS",
"CREATE SNAPSHOT TABLE IF NOT EXISTS",
"CREATE SPECIFIC METHOD",
"CREATE SYSTEM TEMPORARY TABLESPACE",
"CREATE TABLE FUNCTION IF NOT EXISTS",
"CREATE TABLE IF NOT EXISTS",
"CREATE TEMP FUNCTION IF NOT EXIST",
"CREATE TEMP RECURSIVE VIEW",
"CREATE TEMP TABLE IF NOT EXISTS",
"CREATE TEMPORARY EXTERNAL TABLE",
"CREATE TEMPORARY EXTERNAL TABLE IF NOT EXISTS",
"CREATE TEMPORARY FUNCTION",
"CREATE TEMPORARY FUNCTION IF NOT EXIST",
"CREATE TEMPORARY MACRO",
"CREATE TEMPORARY RECURSIVE VIEW",
"CREATE TEMPORARY SEQUENCE",
"CREATE TEMPORARY TABLE",
"CREATE TEMPORARY TABLE IF NOT EXISTS",
"CREATE TEMPORARY TABLESPACE",
"CREATE TEXT SEARCH CONFIGURATION",
"CREATE TEXT SEARCH DICTIONARY",
"CREATE TEXT SEARCH PARSER",
"CREATE TEXT SEARCH TEMPLATE",
"CREATE TRANSACTIONAL TABLE",
"CREATE TRANSFORM FUNCTION",
"CREATE TRUSTED CONTEXT",
"CREATE TRUSTED PROTOCOL",
"CREATE UNIQUE WHERE NOT NULL INDEX",
"CREATE UNLOGGED TABLE IF NOT EXISTS",
"CREATE USER MAPPING IF NOT EXISTS",
"CREATE USER TEMPORARY TABLESPACE",
"CREATE VIEW IF NOT EXISTS",
"CREATE_STORED_OUTLINES",
"CURRENT_DEFAULT_TRANSFORM_GROUP",
"CURRENT_TRANSACTION_ID",
"CURRENT_TRANSFORM_GROUP_FOR_TYPE",
"CURSOR_SPECIFIC_SEGMENT",
"DATA_SECURITY_REWRITE_LIMIT",
"DATAOBJ_TO_MAT_PARTITION",
"DATETIMEOFFSETFROMPARTS",
"DAYOCCURRENCE_OF_MONTH",
"DECLARE EXIT HANDLER FOR",
"DECLARE GLOBAL TEMPORARY TABLE",
"DECRYPTBYKEYAUTOASYMKEY",
"DESCRIBE CONNECTOR EXTENDED",
"DESCRIBE DATABASE EXTENDED",
"DESCRIBE SCHEMA EXTENDED",
"DIAGNOSTIC DUMP SAMPLES",
"DIAGNOSTIC HELP PROFILE",
"DIAGNOSTIC HELP SAMPLES",
"DIAGNOSTIC SET PROFILE",
"DIAGNOSTIC SET SAMPLES",
"DISABLE_CONTAINERS_DEFAULT",
"DIST_AGG_PROLLUP_PUSHDOWN",
"DROP AGGREGATE FUNCTION",
"DROP AGGREGATE FUNCTION IF EXISTS",
"DROP AGGREGATE IF EXISTS",
"DROP ALL ROW ACCESS POLICIES ON",
"DROP ANALYTIC FUNCTION",
"DROP ANALYTIC FUNCTION IF EXISTS",
"DROP ASSIGNMENT IF EXISTS",
"DROP AUTHENTICATION IF EXISTS",
"DROP CA BUNDLE IF EXISTS",
"DROP CAPACITY IF EXISTS",
"DROP CERTIFICATE IF EXISTS",
"DROP COLLATION IF EXISTS",
"DROP CONNECTOR IF NOT EXISTS",
"DROP CONVERSION IF EXISTS",
"DROP DATABASE IF EXISTS",
"DROP DATABASE PARTITION GROUP",
"DROP EXTENSION IF EXISTS",
"DROP EXTERNAL TABLE IF EXISTS",
"DROP EXTERNAL WEB TABLE",
"DROP EXTERNAL WEB TABLE IF EXISTS",
"DROP FAULT GROUP IF EXISTS",
"DROP FOREIGN DATA WRAPPER",
"DROP FOREIGN DATA WRAPPER IF EXISTS",
"DROP FOREIGN TABLE IF EXISTS",
"DROP FUNCTION IF EXISTS",
"DROP HISTOGRAM TEMPLATE",
"DROP IDENTITY PROVIDER",
"DROP INDEX CONCURRENTLY",
"DROP INDEX CONCURRENTLY IF EXISTS",
"DROP LANGUAGE IF EXISTS",
"DROP LIBRARY IF EXISTS",
"DROP LOAD BALANCE GROUP",
"DROP LOAD BALANCE GROUP IF EXISTS",
"DROP MATERIALIZED VIEW",
"DROP MATERIALIZED VIEW IF EXISTS",
"DROP NETWORK ADDRESS IF EXISTS",
"DROP NETWORK INTERFACE",
"DROP NETWORK INTERFACE IF EXISTS",
"DROP NOTIFIER IF EXISTS",
"DROP OPERATOR CLASS IF EXISTS",
"DROP OPERATOR FAMILY IF EXISTS",
"DROP OPERATOR IF EXISTS",
"DROP PACKAGE IF EXISTS",
"DROP PERMISSION IF EXISTS",
"DROP PROCEDURAL LANGUAGE",
"DROP PROCEDURAL LANGUAGE IF EXISTS",
"DROP PROCEDURE IF EXISTS",
"DROP PROFILE IF EXISTS",
"DROP PROJECTION IF EXISTS",
"DROP PROTOCOL IF EXISTS",
"DROP RESERVATION IF EXISTS",
"DROP ROUTINE IF EXISTS",
"DROP ROUTING RULE IF EXISTS",
"DROP ROW ACCESS POLICY",
"DROP SEARCH INDEX IF EXISTS",
"DROP SECURITY LABEL COMPONENT",
"DROP SEQUENCE IF EXISTS",
"DROP SNAPSHOT TABLE IF EXISTS",
"DROP SPECIFIC FUNCTION",
"DROP SPECIFIC FUNCTION IF EXISTS",
"DROP SPECIFIC PROCEDURE",
"DROP SPECIFIC ROUTINE IF EXISTS",
"DROP TABLE FUNCTION IF EXISTS",
"DROP TABLESPACE IF EXISTS",
"DROP TEMPORARY FUNCTION",
"DROP TEMPORARY FUNCTION IF EXISTS",
"DROP TEMPORARY MACRO IF EXISTS",
"DROP TEXT INDEX IF EXISTS",
"DROP TEXT SEARCH CONFIGURATION",
"DROP TEXT SEARCH CONFIGURATION IF EXISTS",
"DROP TEXT SEARCH DICTIONARY",
"DROP TEXT SEARCH DICTIONARY IF EXISTS",
"DROP TEXT SEARCH PARSER",
"DROP TEXT SEARCH PARSER IF EXISTS",
"DROP TEXT SEARCH TEMPLATE",
"DROP TEXT SEARCH TEMPLATE IF EXISTS",
"DROP TRANSFORM ALL FOR",
"DROP TRANSFORM FUNCTION",
"DROP TRANSFORM FUNCTION IF EXISTS",
"DROP TRANSFORMS ALL FOR",
"DROP USER MAPPING IF EXISTS",
"DROP USER MAPPING USER SERVER",
"DROP VARIABLE IF EXISTS",
"DROP XSROBJECT IF EXISTS",
"DST_UPGRADE_INSERT_CONV",
"DYNAMIC_SAMPLING_EST_CDN",
"EXCHANGE DATA BETWEEN TABLE",
"FILESYSTEM_LIKE_LOGGING",
"FORCE_XML_QUERY_REWRITE",
"FULL_OUTER_JOIN_TO_OUTER",
"FULLTEXTCATALOGPROPERTY",
"FULLTEXTSERVICEPROPERTY",
"GATHER_OPTIMIZER_STATISTICS",
"GATHER_PLAN_STATISTICS",
"GET DIAGNOSTICS EXCEPTION",
"GET_FILESTREAM_TRANSACTION_CONTEXT",
"GETTIMEZONEDISPLACEMENT",
"GLOBAL TEMPORARY TABLE",
"GRANT ROLE, UPDATE, INSERT O",
"GRANT SELECT, SELECT, UPDATE O",
"GRANT SELECT ON, UPDATE, INSERT O",
"GRANT UPDATE, INSERT, UPDATE O",
"GRANT UPDATE ON, SELECT, INSERT O",
"GRANTED, INSERT, SELECT O",
"HIER_MEMBER_UNIQUE_NAME",
"IGNORE_OPTIM_EMBEDDED_HINTS",
"IGNORE_ROW_ON_DUPKEY_INDEX",
"INITIATE INDEX ANALYSIS",
"INITIATE PARTITION ANALYSIS",
"INSERT WITH ISOLATED LOADING",
"INTERVAL DAY TO MINUTE",
"INTERVAL DAY TO SECOND",
"INTERVAL HOUR TO MINUTE",
"INTERVAL HOUR TO SECOND",
"INTERVAL MINUTE TO SECOND",
"INTERVAL YEAR TO MONTH",
"LDAP_REG_SYNC_INTERVAL",
"LDAP_REGISTRATION_ENABLED",
"LOCKING ROW FOR ACCESS",
"LOG_READ_ONLY_VIOLATIONS",
"LOGICAL_READS_PER_CALL",
"LOGICAL_READS_PER_SESSION",
"MODEL_COMPILE_SUBQUERY",
"MODEL_DONTVERIFY_UNIQUENESS",
"MODEL_DYNAMIC_SUBQUERY",
"MONITOR PHYSICAL CONFIG",
"MONITOR PHYSICAL RESOURCE",
"MONITOR PHYSICAL SUMMARY",
"MONITOR VIRTUAL CONFIG",
"MONITOR VIRTUAL RESOURCE",
"MONITOR VIRTUAL SUMMARY",
"MONTHNUMBER_OF_CALENDAR",
"MONTHNUMBER_OF_QUARTER",
"NATIVE_FULL_OUTER_JOIN",
"NESTED_TABLE_FAST_INSERT",
"NESTED_TABLE_SET_SETID",
"NLS_NUMERIC_CHARACTERS",
"NO_ANSWER_QUERY_USING_STATS",
"NO_BASETABLE_MULTIMV_REWRITE",
"NO_BATCH_TABLE_ACCESS_BY_ROWID",
"NO_CONNECT_BY_CB_WHR_ONLY",
"NO_CONNECT_BY_COMBINE_SW",
"NO_CONNECT_BY_COST_BASED",
"NO_CONNECT_BY_ELIM_DUPS",
"NO_CONNECT_BY_FILTERING",
"NO_COST_XML_QUERY_REWRITE",
"NO_DATA_SECURITY_REWRITE",
"NO_DIST_AGG_PROLLUP_PUSHDOWN",
"NO_DOMAIN_INDEX_FILTER",
"NO_DST_UPGRADE_INSERT_CONV",
"NO_ELIMINATE_OUTER_JOIN",
"NO_EXPAND_GSET_TO_UNION",
"NO_FULL_OUTER_JOIN_TO_OUTER",
"NO_GATHER_OPTIMIZER_STATISTICS",
"NO_NATIVE_FULL_OUTER_JOIN",
"NO_OUTER_JOIN_TO_INNER",
"NO_PARTIAL_ROLLUP_PUSHDOWN",
"NO_PQ_CONCURRENT_UNION",
"NO_QUERY_TRANSFORMATION",
"NO_STAR_TRANSFORMATION",
"NO_TRANSFORM_DISTINCT_AGG",
"NO_USE_DAGG_UNION_ALL_GSETS",
"NO_USE_HASH_AGGREGATION",
"NO_USE_HASH_GBY_FOR_DAGGPSHD",
"NO_USE_HASH_GBY_FOR_PUSHDOWN",
"NO_USE_INVISIBLE_INDEXES",
"NO_USE_PARTITION_WISE_DISTINCT",
"NO_USE_PARTITION_WISE_GBY",
"NO_USE_PARTITION_WISE_WIF",
"NO_USE_SCALABLE_GBY_INVDIST",
"NO_USE_VECTOR_AGGREGATION",
"NO_VECTOR_TRANSFORM_DIMS",
"NO_VECTOR_TRANSFORM_FACT",
"NO_XDB_FASTPATH_INSERT",
"NO_XMLINDEX_REWRITE_IN_SELECT",
"OPTIMIZER_FEATURES_ENABLE",
"ORA_CHECK_SYS_PRIVILEGE",
"ORA_INVOKING_XS_USER_GUID",
"ORA_PARTITION_VALIDATION",
"PARTIAL_ROLLUP_PUSHDOWN",
"PASSWORD_VERIFY_FUNCTION",
"PASSWORDFILE_METADATA_CACHE",
"POWERMULTISET_BY_CARDINALITY",
"PREDICTION_PROBABILITY",
"QUARTERNUMBER_OF_CALENDAR",
"RESTART INDEX ANALYSIS",
"REVOKE CREATE ON SCHEMA",
"SEMANTICKEYPHRASETABLE",
"SEMANTICSIMILARITYDETAILSTABLE",
"SEMANTICSIMILARITYTABLE",
"SESSION_CACHED_CURSORS",
"SHOW FORMATTED INDEX ON",
"SHOW FORMATTED INDEXES ON",
"SHOW MATERIALIZED VIEWS",
"SHOW MATERIALIZED VIEWS FROM",
"SHOW MATERIALIZED VIEWS IN",
"SHOW MATERIALIZED VIEWS LIKE",
"SHOW TABLE EXTENDED FROM",
"SHOW TABLE EXTENDED IN",
"SHOW TABLE EXTENDED LIKE",
"SMALLDATETIMEFROMPARTS",
"SOURCE_FILE_NAME_CONVERT",
"SQL_TRANSLATION_PROFILE",
"STANDBY_MAX_DATA_DELAY",
"SYS_OP_BLOOM_FILTER_LIST",
"SYS_OP_DSB_DESERIALIZE",
"SYS_OP_ENFORCE_NOT_NULL$",
"SYS_OP_KEY_VECTOR_CREATE",
"SYS_OP_KEY_VECTOR_FILTER",
"SYS_OP_KEY_VECTOR_FILTER_LIST",
"SYS_OP_KEY_VECTOR_PAYLOAD",
"SYS_OP_KEY_VECTOR_SUCCEEDED",
"SYS_OP_VECTOR_GROUP_BY",
"SYS_OP_XMLCONS_FOR_CSX",
"SYS_XMLLOCATOR_GETSVAL",
"SYS_XMLNODEID_GETLOCATOR",
"SYS_XMLNODEID_GETPATHID",
"SYS_XMLNODEID_GETPTRID",
"TD_NORMALIZE_OVERLAP_MEET",
"TD_QUARTER_OF_CALENDAR",
"TD_SUM_NORMALIZE_OVERLAP",
"TD_SUM_NORMALIZE_OVERLAP_MEET",
"TIMESTAMP WITH TIME ZONE",
"TIMESTAMP WITHOUT TIME ZONE",
"TO_APPROX_COUNT_DISTINCT",
"TRANSFORM_DISTINCT_AGG",
"UNNEST_INNERJ_DISTINCT_VIEW",
"UNNEST_NOSEMIJ_NODISTINCTVIEW",
"USE_DAGG_UNION_ALL_GSETS",
"USE_HASH_GBY_FOR_DAGGPSHD",
"USE_HASH_GBY_FOR_PUSHDOWN",
"USE_PARTITION_WISE_DISTINCT",
"USE_PARTITION_WISE_GBY",
"USE_PARTITION_WISE_WIF",
"USE_SCALABLE_GBY_INVDIST",
"USE_VECTOR_AGGREGATION",
"VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER",
"WEEKNUMBER_OF_CALENDAR",
"XMLINDEX_REWRITE_IN_SELECT",
"XMLPUBLISH_GEN_CANONICAL_SQL",
"XSLT_SHRED_GENCANONICAL_SQL",
"XSLT_SHRED_GENERATE_SQL",
"YEARNUMBER_OF_CALENDAR",