Differences

This shows you the differences between two versions of the page.

Link to this comparison view

admin:admin:applications:prototype [2011/01/10 17:08]
127.0.0.1 external edit
admin:admin:applications:prototype [2016/06/28 22:38]
Line 1: Line 1:
-{{page>:​top_add&​nofooter&​noeditbtn}} 
  
-====== Omnidex Administration ====== 
- 
-===== Building Omnidex Applications ===== 
- 
-[[admin:​admin:​applications:​design|Design]] -> **[[admin:​admin:​applications:​prototype|Prototype]]** -> [[admin:​admin:​applications:​development|Development]] -> [[admin:​admin:​applications:​testing|Testing]] -> [[admin:​admin:​applications:​staging|Staging]] -> [[admin:​admin:​applications:​production|Production]] -> [[admin:​admin:​applications:​optimization|Optimization]]  ​ 
- 
----- 
- 
-==== Prototype ==== 
- 
-Administrators often create a prototype before starting development. ​ Usually, administrators create a smaller test database, and then create Omnidex indexes and run sample queries. ​ Omnidex indexes can also be created on the production database if this is preferable. ​ Prototypes enable businesses to gauge the performance they will see and insure that they have a good indexing strategy. 
- 
-Prototyping an Omnidex application has four steps: 
- 
-  - [[#​Creating_a_test_database_(optional)|Creating a test database (optional)]] 
-  - [[#​Creating_an_Omnidex_environment|Creating an Omnidex Environment]] 
-  - [[#​Creating_Omnidex_indexes|Creating Omnidex indexes]] 
-  - [[#​Optimizing_queries|Optimizing queries]] 
-  - [[#​Prototyping_the_application|Prototyping the application]] 
-  ​ 
-===  1. Creating a Test Database (optional) === 
- 
-Administrators usually create a small test database, often using an Omnidex Snapshot. ​ This test database is useful for optimizing queries and predicting performance. ​ Since Omnidex Snapshots reside in flat files, they are highly portable and can be moved to development servers. ​ They do not require licenses for the relational database software, nor do they need the support of database administrators. ​ This allows Omnidex prototyping to occur quickly and easily, without affecting the main data server. 
- 
-Omnidex Snapshots can be built on a subset of the database. ​ At this stage of analyzing queries, the database does not need more than a few thousand rows.  A smaller database allows quick changes to the indexing structure as queries are tuned, avoiding the complications of indexing the main database. ​ Omnidex Snapshots can be built using the Omnidex Administrator. ​ For more information on Omnidex Snapshots, refer to the article on [[admin:​snapshots:​home|Omnidex Snapshots]]. 
- 
-The production database can be indexed directly as long as the development and testing process does not interfere with regular operations. ​ If the database contains over 20 million rows, it is a candidate for an Omnidex Grid; therefore, a smaller database would be appropriate for prototyping.  ​ 
- 
-===  2. Creating an Omnidex Environment === 
- 
-Omnidex databases are described in an Omnidex Environment. ​ Omnidex Environments store information about the underlying database, the Omnidex indexing and other configuration settings. ​ Omnidex Environments can then be connected to using a variety of tools and API's. 
- 
-Omnidex Environments are created interactively using the Omnidex Administrator,​ or are created with SQL statements such as CREATE ENVIRONMENT,​ CREATE DATABASE, CREATE TABLE and CREATE INDEX. ​ Both of these approaches will create an XML file that contains all of the meta-data describing an Omnidex-enhanced database.  ​ 
- 
-The [[admin:​environments:​home|Omnidex Environments]] section of the documentation discusses how to create and connect to Omnidex Environments. 
- 
-===  3. Creating Omnidex Indexes === 
- 
-Omnidex indexes are first declared in the Omnidex Environment,​ and then all indexes are built at the same time.  This approach allows Omnidex to build indexes substantially faster than relational databases. ​ With relational databases, the CREATE INDEX statement declares the index and starts a sequential scan of the table in order to build the index. ​ When creating a large number of indexes, this approach causes an excessive load on the database by re-reading the table for each index. ​ With Omnidex, indexes are declared without being built and then all indexes are built with one sequential scan of the table.  ​ 
- 
-Omnidex indexes can be declared interactively using the Omnidex Administrator,​ or can be declared using the CREATE INDEX statement.  ​ 
- 
-Omnidex indexes can be built interactively using the Omnidex Administrator,​ or can be built using the UPDATE INDEXES statement.  ​ 
- 
-The [[admin:​indexing:​create|Creating Omnidex Indexes]] section of the documentation discusses how to create and build Omnidex indexes. 
- 
-===  4. Optimizing Queries === 
- 
-Omnidex applications remain fast when the majority of queries are well optimized. ​ This allows resources to be quickly used and then released for the next query. ​ If enough queries run for a long time, they can consume enough CPU, memory and disk access to degrade the overall performance of the machine. ​ The goal at this stage is to insure that most, if not all, of the queries are well optimized.  ​ 
- 
-Queries are optimized by running them against a test database and evaluating the query plan.  The query plan shows each access to an Omnidex index and shows how each aspect of the query is processed. ​ The query plan also shows warnings and notes indicating areas where optimization can be improved.  ​ 
- 
-Each time the indexing strategy is changed, it is worth repeating this process to insure that all queries remain well optimized. ​ Again, this points to the value of doing this process on a small version of the database. 
- 
-Query optimization is done using the Omnidex Administrator or using OdxSQL. ​ Administrators should learn how to analyze query plans, and are encouraged to read the article on [[admin:​optimization:​home|Optimizing Queries]]. 
- 
-===  5. Prototyping the Application === 
- 
-Once the queries are optimized, a broader prototype can be creating that engages any client-side functionality. ​ Omnidex is most commonly accessed using standard ODBC and JDBC drivers. ​ Omnidex provides its own Network Services optimized to Omnidex'​s needs.  ​ 
- 
-Application architectures often contain many other layers such as analytic tools, bus interfaces, intermediate languages, middleware tools, load balancers, connection poolers, etc.   ​Omnidex will integrate by simply pointing to the Omnidex ODBC or JDBC driver rather than the relational database'​s ODBC or JDBC driver. ​ Some tailoring may be needed in the application layers to take advantage of Omnidex'​s extended functionality,​ such as fuzzy searches or geographic searches.  ​ 
- 
-The [[integration:​home|Application Integration]] section of the documentation discusses the process of connecting Omnidex to the client-side tools and integrating with some of the more popular analytic tools.  ​ 
- 
- 
-====== ​ ====== 
-\\  
----- 
-\\  
- 
-The next stage in building Omnidex applications is [[admin:​admin:​applications:​development|Development]]. 
- 
-**[[admin:​admin:​applications:​design|Prev]]** | **[[admin:​admin:​applications:​development|Next]]** ​ 
- 
-{{page>:​bottom_add&​nofooter&​noeditbtn}} 
 
Back to top
admin/admin/applications/prototype.txt ยท Last modified: 2016/06/28 22:38 (external edit)