Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Partition in Sybase for record insertion & select query

Posted on 2008-11-08
11
Medium Priority
?
3,350 Views
Last Modified: 2012-05-05
Hi, 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  
0
Comment
Question by:ram2098
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 19

Accepted Solution

by:
grant300 earned 240 total points
ID: 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
0
 
LVL 6

Expert Comment

by:IncisiveOne
ID: 22914130
Sybase ASE or IQ ?
Version ?
0
 
LVL 24

Expert Comment

by:Joe Woodhouse
ID: 22915689
(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.
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
LVL 1

Expert Comment

by:BenSlade
ID: 22962768
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.com/help/index.jsp?topic=/com.sybase.dc00169_1270/html/iqperf/iqperf125.htm
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00169_1270/html/iqperf/iqperf120.htm

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.



 
0
 
LVL 6

Expert Comment

by:IncisiveOne
ID: 23001179
(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

0
 
LVL 24

Expert Comment

by:Joe Woodhouse
ID: 23513570
Hmm, don't agree. The question as asked was answered completely and correctly.

grant300 answered the question and should receive the points.
0
 
LVL 19

Expert Comment

by:grant300
ID: 23514031
If you are going to award point, I suggest a 50/50 point split with Joe Woodhouse.
0
 
LVL 24

Expert Comment

by:Joe Woodhouse
ID: 23514086
On a 60-point question I don't think they can split, 50 minimum per contributing answer. And if there can be only one answer, then it's yours. Mine added to yours but would not have stood on its own.
0
 
LVL 19

Expert Comment

by:grant300
ID: 23517881
I did not even look at the number of points assigned to the question.  Sorry if I made it more complicated than it needed to be.

Regards,
Bill
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Google webmaster tool or Google search console is an imperative tool for solving different website relevant issues. The amazing features of this tool greatly help to check the indexing and improve the visibility of the site.
Don’ts and Dos are two important end products of software testing basics that a tester needs to regard. This article attempts to explain the principles of both.
This video shows how to quickly and easily deploy an email signature for all users in Office 365 and prevent it from being added to replies and forwards. (the resulting signature is applied on the server level in Exchange Online) The email signat…
Enter Foreign and Special Characters Enter characters you can't find on a keyboard using its ASCII code ... and learn how to make a handy reference for yourself using Excel ~ Use these codes in any Windows application! ... whether it is a Micr…
Suggested Courses
Course of the Month11 days, 18 hours left to enroll

564 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question