0% found this document useful (0 votes)
57 views3 pages

Adaptive Server IQ 12.5 Performance Cheat Sheet

This document provides a performance cheat sheet for Adaptive Server IQ 12.5. It includes recommendations for hardware, software, database configuration, indexing, and other tips. The key recommendations are to install the latest patches and EBFs, dedicate hardware to IQ, size the main and temp stores at 70/30% typically, set the main cache to 40% of memory and temp cache to 60%, and create indexes on all columns before loading data. Hardware guidelines include fast CPUs, memory proportional to CPUs, multiple disks, and a 64-bit OS.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views3 pages

Adaptive Server IQ 12.5 Performance Cheat Sheet

This document provides a performance cheat sheet for Adaptive Server IQ 12.5. It includes recommendations for hardware, software, database configuration, indexing, and other tips. The key recommendations are to install the latest patches and EBFs, dedicate hardware to IQ, size the main and temp stores at 70/30% typically, set the main cache to 40% of memory and temp cache to 60%, and create indexes on all columns before loading data. Hardware guidelines include fast CPUs, memory proportional to CPUs, multiple disks, and a 64-bit OS.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

Adaptive Server IQ 12.

5 Performance Cheat Sheet

1. Hardware  Install latest patches for OS -iqmc main cache size (start with 40% of
 Install ASIQ whats available for IQ)
 Make it Dedicated. IQ and RDBMS’s, ETL  Install latest EBF (base releases of IQ can be a -iqtc temp cache size (start with 60% of
tools, Cube Builders, etc. should not be on the little buggy) whats available for IQ)
same box if you can help it ! NB: Above figures assume an even
 Set aside 500mb min (more if you wish to keep 3. Databases mix of queries. For environments
many logs, ebfs, etc on disk) for IQ software where lots of sort-merge joins or large
 Staging area - if loading from flat files (which is  Sizing – As a start, assume 70% Raw data size number of HG index inserts are being
the fastest way to load) make sure they are not for IQ Main Store & 30% for IQ Temp Store done, then a 30/70 split May be more
on the same disk/s as the DB files. (this is a very rough figure based on 75% Gut appropriate. Where there is an
 Swap – twice physical memory feel and 25% experience with small to medium extremely low number of these sorts of
 Memory – Recommend 1gb for anything more DB’s – 10-12-gb, but it’s a start) operations a 50/50 split may be more
than a development system (even for a proof of  Raw devices are a bit faster (but are a little appropriate.
concept). Rough rule of thumb is 2 GB per harder to manage) – Needed for Multiplex, so if -cl Minimum cache size for catalog store
CPU - Get whatever you can afford, and then you don’t use them you may have to rebuild (32mb recommended)
more! you DB from scratch down the line (and -gp catalog store page size (should be
 CPU – Fast CPU’s make a big difference – rebuilding a multi-terabyte database is not same as when db create, usually 4096)
Higher clock speeds are important (P4 3ghz+, trivial). -gm number of concurrent users (default
Itanium) and lots of them ! IQ is more CPU  IQ Page Size – Min 128k on 64bit platforms 10)
than I/O intensive even for loading ! Ideally 1 (which you should be using if you can !). -gc checkpoint interval (default 60,
CPU per active query. Probably the best in most cases unless you recommended 6000)
-gr max recovery time (default 2,
 OS – If you aren’t committed to one, consider have tonnes of memory (as the larger the page
size the fewer pages fit in memory). recommended 6000)
Linux (gives you S/W benefits of Unix, with
-ti default client timeout (default 240,
Hardware benefits of Intel CPU’s).  If possible, create the database as CASE
recommended 4440 which is ~72 hours)
 64bit OS & Processor is preferred. RESPECT. It is more efficient.
-tl default network timeout (default 120,
 Multiple controllers and disks recommended. recommended 300+)
Minimum 3 disks should be used for IQ (1 for 4. Configuration
-x tcpip{port=xxxx} (if you don’t do this,
OS, SW & logs, 1 for Main store & 1 for temp other protocols are started such as ipx
store).  If it can be set in a config file, it should be
which you don’t need)
set in a config file !
 Some DB options you may want to set:
Set option Force_No_Scroll_Cursors='On';
2. Software  What to set:
Set option.Query_Temp_Space_Limit = 0;
-n ServerName
Compiled by Leigh Kennedy Page 1 of 3
Thanks to Lou Stanton, Mark Mumy, Nick Ward & Sybase Education
Adaptive Server IQ 12.5 Performance Cheat Sheet

set option public.Minimize_storage='On'; key/join columns. Can be multi column  Try to create indexes so that inserts will be
(see indexing section) index placed at the end of the index.
sp_iqcheckoptions – shows values  High Non Group (HNG) indexes are used  Indexes can be create in parallel ie:
changed from the default. for range and aggregation queries (except Begin Parallel IQ
SET OPTION on dates). Create LF index …;
PUBLIC.LOAD_MEMORY_MB = x; (where  Compare (CMP) indexes are used for Create HG index …;
x is the max memory to use for loading. comparisions between two columns in the ...
Default is 0, or unlimited.) NB: Remember same table (columns must be same End Parallel IQ;
this memory is separate to what is datatype inc. precision & scale). It is recommended to create 1 index for
specified in iqmc and iqtc.  Word (WD) indexes index textual data each CPU.
separated by spaces, punctuation, etc.  As you may have seen on the training
very useful for like and contains queries. course we can follow the rules show in the
NB: Restricted to indexing ‘words’ up to 3 indexing chart (see next page).
5. Indexing bytes.
 Date, Time and DataTime (DTTM) indexes
 Always create indexes before loading data are used for range and datepart queries on 6. Unions & Views
– it is much quicker than creating the date and time data
indexes after loading.  Join indexes can be created where two  Views on physically partitioned tables (ie
 Fast projection (FP) indexes are created tables are frequently joined together (only union views) can perform significantly
on all columns. You can use IQ Unique to create them if you need them, IQ is still v. better than on a single large base table.
specify the cardinalty (lots of work) or… fast without them). They need a significant Loading can also be quicker as you can
Turnng the option Minimize_storage on will amount of disk space and need refreshing load into a new table and add it to the view.
give you maximum compression on disk after data loads, so may not be worth the
and best query performance. Warning – trouble. 7. Loading Data
This will slow down the loading of very  Be careful about the use of Unique,
wide tables (1000+ columns) so turn if off primary key, etc. keywords when creating  Ways to load data (From fastest to
to load these. tables. They will create indexes, which you slowest):
 Low fast (LF) indexes should be used may or may not want. Having said that, o Load table command (parallel)
where cardinality is <1500. Its used by PRIMARY KEY indexes do the same as o Load table command (sequential)
Sarg searches, Min, Max & Group by Unique HG, but are more useful to the o Insert from Location
operations. optimizer and FOREIGN KEY indexes to o Insert Values
 High Group (HG) indexes should be used the same as non-unique HG but are also  Where using load table specify multiple
where cardinality is 1500+ and on all more useful to the optimizer. files with one load table command rather
Compiled by Leigh Kennedy Page 2 of 3
Thanks to Lou Stanton, Mark Mumy, Nick Ward & Sybase Education
Adaptive Server IQ 12.5 Performance Cheat Sheet

than multiple load table commands for  ANSI joins are faster (and less ambiguous)
each file.  Avoid using the default port (2638) as this than TSQL joins.
 To run load table in parallel, you need to will be used by all ASA based applications  Use multiplex – It is v. easy to set up and
specify the ROW DELIMITED BY and (ASA, ASIQ, RS12.6, IO4.0, etc) as a manage and will allow you to scale to
DELIMITED BY options. broadcast listener. thousands of users.
 If possible use binary mode of load table  If returning large amounts of data to the  What sort of network are your servers
(can be 3-10 times faster). client (as is often the case with BI tools), running on ? Install Gigabit Ethernet for all
 Some settings that may improve load set a larger network packet size using –p in server to server communication (especially
performance: the config file. important for insert from location).
- DISABLE_RI_CHECK (RI checks can  Char is more efficient than varchar – avoid Consider multiple interfaces, one for clients
cause up 5% of load time) varchar if not needed. and one for servers
-  Avoid storing what you don’t need ie: don’t
MAX_IQ_THREADS_PER_CONNECTION use datetime if you only need date or
- SORT_PHASE1_HELPERS integer if you only need smallint.
- WASH_AREA_BUFFERS_PERCENT  Always specify either NULL or NOT NULL.
- SWEEPER_THREADS_PERCENT It helps the optimizer make better
These settings will require testing to find decisions.
the right combination, if in doubt, stick to  Make sure columns to be joined use
the defaults. exactly the same datatype to avoid implicit
conversion.
8. Extracting Data  Avoid Cursors - IQ is not designed for
Single row processing.
 Ways to extract data (from fastest to  Set option
slowest): Public.OS_File_Cache_Buffering = ‘Off’;
o Using Temporary options Stops double buffering of IQ pages.
o Proxy tables (pointing to ASIQ  Do not do single row inserts if possible -
from a remote server – Make sure Expect no more than 5,000 to 20,000
you tune the packet size) operations per hour.
o Redirection (ie: select * from  Pipes can be faster than files – Load table
employee can read from a pipe, so if you can avoid
># empfile.txt) writing to disk this way it can be
significantly quicker.
9. General Choosing you indexes
Compiled by Leigh Kennedy Page 3 of 3
Thanks to Lou Stanton, Mark Mumy, Nick Ward & Sybase Education

You might also like