Sybase ASE or IQ ?
Version ?
Main Topics
Browse All TopicsHi, I am new to Sybase. We need to create Partition in Sybase for record insertion.I am guessing that, we can count number of records & if it exceeds the certain threshold limit, we can rename the current table to something like table_001 & we can create new table with the table name to continue the process of inserting the record. Please advise & correct me on this. Also Once the partition is done, how can we fetch the records using select statement without giving the partition table name? For example, if the record is in table_005, do i need to specify partition name table_005 in select query? Or do i need to give only table name in selectquery(Not Partition name). Does Sybase take care of itself in finding the correct parition where my record exists which is in where clause of the select query? Please give me more insight on this,Thanks in advance,Thanks,ram
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
(From the tags this is IQ 12.7)
Bill's already given you the right answer, but there's a bit more still to say.
To answer your specific question,
> Does Sybase take care of itself in finding the correct parition where my record exists which is in where clause of the select query?
If you:
1) create a view containing one or more UNIONs of SELECTs of your underlying tables
2) use the view in your queries
then yes. Simply referring to the tables won't help you.
However you haven't said enough here that makes me think you even need to do this. "Record insertion" doesn't justify UNION in VIEW. (As Bill says you don't really have partitions on the tables in IQ yet.)
Another gotcha - you *really* need PRIMARY KEYs on the PKs of the underlying tables. Simply creating a unique HG index isn't enough (even though a PRIMARY KEY is implemented as a unique HG) because PK clauses give the optimiser more information. If the PKs are composite (multiple columns), create a PRIMARY KEY clause on the composite key, but also create HG indexes (regardless of cardinality) on each of the columns in the PK.
If you're asking about IQ partitioning with the goal getting more I/O parallelism, also take a look at the IQ DISK_STRIPING option (which is on by default). This option causes IQ to automatically spread I/O across multiple db spaces. See:
http://infocenter.sybase.c
http://infocenter.sybase.c
This isn't as nice as partitioning (eg., you can't partition data by date range), but it's helps performance is you have multiple disk controllers and disks.
(I saw the tags, but from the questions and approach, this may be ASE. Why bother with that kind of partitioning in IQ, renaming tables, how to get at the data in the old table ...)
I think the simple answer is:
1 Do nothing. The software (ASE or IQ) will continue working as is.
2 Read the manuals
3 Get clear about what you actually need to do
4 If you are uncertain about HOW to do that, post a question.
Cheers
Business Accounts
Answer for Membership
by: grant300Posted on 2008-11-08 at 09:45:01ID: 22913092
Sybase IQ 12.7 does not support partitioning per se. It does, however have special support and optimizations in views for combining tables as if they were partitions.
You can do what you want not by renaming the table but by creating your "partition" tables and then layering a view on top. You probably need at least two views; one for the "current" parition you want to load data into and one that has the UNION of all the partitions.
There are a couple of issues to take into account here. First, you have to decide why you are splitting up the table. If you are doing it because your data volumes are very large and you are trying to minimize the load time caused by index reorganization in pass 2, then this technique works great. For example, you can create a table for each month and keep the most recent 6 months in the Union view. At the end of the 7th month, you change the view to include the next table and drop the oldest month table from the view. You can also truncate it to purge old data or keep the table around as an archive of sorts so that you can go back to the old data yet it does not effect the performance of loads and queries on recent data.
If you are expecting it to reduce your query times, you may be dissapointed, particularly if you are running on a smaller machine with just a few CPUs/licenses. Since the query engine and optimizer have no idea what records are in what tables, you are actually running your query on each one of the underlying tables and then corellating the results. This can be counter productive unless you can create a view that refers to only some of the paritition tables; say 6 months worth out of two years total in the database.
IQ 15, currently in early beta, does support semantic paritioning. The question remains as to whether Sybase will do with this feature what they did with it in ASE and charge an additional license fee for it.
Finally, I hope you are not trying to load the tables with Insert statements. The performance of that technique leaves a lot to be desired given the column store nature of Sybase IQ. By far the fastest and most flexible way to get data into IQ is with the LOAD TABLE statement. Depending on what you are doing, it can be anywhere from 10 to 1000 times faster than straight SQL Insert statements.
Regards,
Bill