A PCRE internal error occured. This might be caused by a faulty plugin

* [[topbar |Table of Contents]] * [[intro:overview:what|Introduction]] * [[install:home|Installation]] * [[install:editions|Product Editions]] * [[install:requirements|System Requirements]] * [[install:platforms|Supported Platforms]] * [[install:guides:home|Installation Guides]] * [[install:licensing:home|Licensing]] * [[install:releases:home|Release Notes]] * [[admin:home|Administration]] * [[admin:admin:home|Administration Basics]] * [[admin:admin:architecture:home|Omnidex Architecture]] * [[admin:admin:applications:home|Building Applications]] * [[admin:basics:home|Omnidex Fundamentals]] * [[admin:basics:environments:home|Omnidex Environments]] * [[admin:basics:sqlengine:home|Omnidex SQL Engine]] * [[admin:basics:updates:home|Omnidex Updates]] * [[admin:basics:network:home|Network Services]] * [[admin:indexing:home|Omnidex Indexing]] * [[admin:indexing:concepts:home|Indexing Concepts]] * [[admin:indexing:indexes:home|Indexing Options]] * [[admin:indexing:creation:home|Index Creation]] * [[admin:indexing:strategies:home|Indexing Strategies]] * [[admin:indexing:activecounts:home|ActiveCounts]] * [[admin:indexing:powersearch:home|PowerSearch]] * [[admin:indexing:autocomplete:home|AutoComplete]] * [[admin:indexing:text:home|Omnidex Text]] * [[admin:features:home|Omnidex Features]] * [[admin:features:snapshots:home|Omnidex Snapshots]] * [[admin:features:grids:home|Omnidex Grids]] * [[admin:features:rollups:home|Rollup Tables]] * [[admin:features:geo:home|Geographic Searches]] * [[admin:features:expressioncols:home|Expression Columns]] * [[admin:features:segments:home|Omnidex Segments]] * [[admin:features:attach:home|Attaching Data]] * [[admin:features:export:home|Exporting Data]] * [[admin:optimization:home|Optimizing Queries]] * [[admin:optimization:plans:home|Query Plans]] * [[admin:optimization:caches:home|Dynamic Caches]] * [[admin:optimization:config:home|Configuring Omnidex]] * [[integration:home|Integration]] * [[integration:rdbms:home|Relational Databases]] * [[integration:rdbms:oracle:home|Oracle]] * [[integration:rdbms:sqlserver:home|SQL Server]] * [[integration:rdbms:mysql:home|MySQL]] * [[integration:rdbms:odbc:home|Generic ODBC]] * [[integration:rawdata:home|Raw Data Files]] * [[integration:rawdata:fixed:home|Fixed-length Files]] * [[integration:rawdata:delimited:home|Delimited Files]] * [[integration:rawdata:ost:home|Standalone Tables]] * [[dev:home|Development]] * [[dev:sql:home|Omnidex SQL]] * [[dev:sql:overview|Overview]] * [[dev:sql:statements:home|Statements]] * [[dev:sql:functions:home|Functions]] * [[dev:sql:examples:home|Examples]] * [[dev:connections:home|Connection Strings]] * [[dev:odbc:home|ODBC Interface]] * [[dev:jdbc:home|JDBC Interface]] * [[dev:debugging:home|Logging/Debugging]] * [[programs:home|Programs]] * [[programs:odxsql:home|OdxSQL]] * [[programs:odxnet:home|OdxNet]] * [[appendix:home|Appendix]] * [[dev:sql:home|Omnidex SQL]] * [[dev:sql:statements:home|Statements]] * [[dev:sql:functions:home|Functions]] * [[dev:sql:examples:home|Examples]] * [[http://www.omnidex.com/download/|Downloads]] * [[support:home|Support]]

~~NOTOC~~ {{page>:top_add&nofooter&noeditbtn}} ====== Administration: Omnidex Features ====== ===== Expression-based Columns ===== [[admin:features:expressioncols:home|Overview]] | [[admin:features:expressioncols:declaration|Declaring Expression-based Columns]] | **[[admin:features:expressioncols:optimization|Optimizing Queries]]** ---- ==== Optimizing with Expression-based Columns ==== Expression-based columns provide several opportunities for optimizing SQL statements. Expression-based columns can be used to classify data into more valuable formats. Expression-based columns are also the best way to index the result of expressions. In both of these cases, Omnidex will take advantage of indexes on expression-based columns to improve the performance of the query. === Classifying Data === When developing applications, a common task is to classify data so that it is more easily presented to the user. For example, birthdates can be classified into age brackets. Income amounts can be classified into income levels. Credit scores can be classified to credit risk brackets. These tasks are often done during the "Extract, transform and load" (ETL) phase of an application, but it can also be done with expression-based columns. These classifications help the user by giving them more categorized and simplify choices, and by standardizing searches. These classifications help indexing by enabling more use of the high-speed Omnidex Bitmap indexes. Omnidex Bitmap indexes are appropriate when a column has 32 or less unique values. While a birthdate does not mean this requirement, age brackets do. The same is true for income brackets, credit score ranges, and any number of other similar classifications. Administrators may choose which approach they prefer. Classifying these at the ETL phase has the advantage of speeding eventual performance since the expressions are only calculated at the ETL phase, and not during indexing and database access. Classifying these with expression-based columns has the advantage of not having to change the underlying database and being able to add new classifications more quickly. === Indexing Expressions === Standard Omnidex indexes are appropriate for optimizing criteria where a column is being compared to one or more values. For example, standard Omnidex indexes are excellent for optimizing the criteria, "STATE = 'MA' and CITY = 'Boston'". By default, Omnidex indexes cannot be used to optimize criteria where an expression is being compared to one or more values. For example, standard Omnidex indexes cannot be used to optimize the criteria, "((QUANTITY * UNIT_COST) * TAX_RATE) + COMMISSION) > 100.00". In these situations, Omnidex will look for an expression-based column that matches the expression in the SQL statement. If one is found, Omnidex will look to see if that expression-based column has been indexed. If an index is found, Omnidex will optimize the query by using that index. This has two advantages. First, it gains the speed of an indexed search, and it prevents the expression from be recalculated for each row as it is retrieved. This same technique is appropriate for many types of expressions. For example, a search for area code using criteria of "SUBSTRING(PHONE from 2 for 3) = '303'" can be optimized using a similarly constructed expression-based column. A search for age using criteria of "$COMPARE_DATES(BIRTHDATE, CURRENT_DATE, 'YY') >= 24" can be similarly optimized. This technique creates a wide variety of new oppportunities for optimizing queries using Omnidex indexes. ==== ==== **[[admin:features:expressioncols:declaration|Prev]]** ====== Additional Resources ====== See also: {{page>:admin:features:see_also&nofooter&noeditbtn}} {{page>:bottom_add&nofooter&noeditbtn}}

Back to top
admin/features/expressioncols/optimization.txt ยท Last modified: 2016/06/28 22:38 (external edit)
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0