473,626 Members | 3,083 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

type-2 index causing performance hit

We are using DB2 UDB version 8.1 fp7 & fp9 on AIX 5.2.
On our databases we do massive inserts and deletes (millions of rows).
The performance is dramatically reduced because of pseudo deleted keys.
In a 10 minutes it goes from 18000 transaction per minute to 9000 and
lower.
When an index reorg with CLEANUP ONLY PAGES is executed, the number of
transactions climbs again. But a few minutes later it drops again to
9000.
We have to run the reorg constantly to keep a steady speed.

I'm thinking of using the option minpctused on all indexes.
But how do you specify this when constraints like primary keys are
used?
Are there other options we can use to keep a steady performance.

Jan 2 '06 #1
12 3050
<be************ **@gmail.com> wrote in message
news:11******** *************@g 14g2000cwa.goog legroups.com...
We are using DB2 UDB version 8.1 fp7 & fp9 on AIX 5.2.
On our databases we do massive inserts and deletes (millions of rows).
The performance is dramatically reduced because of pseudo deleted keys.
In a 10 minutes it goes from 18000 transaction per minute to 9000 and
lower.
When an index reorg with CLEANUP ONLY PAGES is executed, the number of
transactions climbs again. But a few minutes later it drops again to
9000.
We have to run the reorg constantly to keep a steady speed.

I'm thinking of using the option minpctused on all indexes.
But how do you specify this when constraints like primary keys are
used?
Are there other options we can use to keep a steady performance.

Create an unique index with the attributes you want prior to creating the PK
(create the PK with an alter table).

I doubt that minpctused used will help. In fact it may make it worse since
it will attempt to reorg the index pages online while your are inserting and
deleting.

I would suggest using a high percent free value (25-30%) for the indexes.
Other options include using the load command.
Jan 2 '06 #2
Thanks for the tip and suggestions.
I'll try the high percent free value, but the load is not possible. The
application (not ours) just works this way.
I hope one of the options will work, cause else I must say DB2 is not
build for high transaction volumes we are doing and that would be very
sad.
I read about the benefits from type-2 indexes, but there seems to be a
big drawback because it reduce the efficiency of the index big time in
our situation.

Jan 2 '06 #3
<be************ **@gmail.com> wrote in message
news:11******** **************@ o13g2000cwo.goo glegroups.com.. .
Thanks for the tip and suggestions.
I'll try the high percent free value, but the load is not possible. The
application (not ours) just works this way.
I hope one of the options will work, cause else I must say DB2 is not
build for high transaction volumes we are doing and that would be very
sad.
I read about the benefits from type-2 indexes, but there seems to be a
big drawback because it reduce the efficiency of the index big time in
our situation.


DB2 has done very well in benchmarks with high transaction volumes, so it is
built for such workloads. In fact, DB2 holds the record for the highest tpmC
in the TPC-C benchmark.
http://www.tpc.org/tpcc/results/tpcc_perf_results.asp
Jan 2 '06 #4
Yes DB2 is wel tuned for TPC-C...
But DB2 has like other databases some drawbacks.
Why does DB2 do logical deletes on indexes anyway? That's really
obsolete technology.
Enabling online index defragmentation using minpctused must have some
impact, otherwise it would be default or could someone shed a light why
you don't want that as default.
But why logical deletes?

And there other issues with DB2 like clustering and overflow rows which
all need reorgs because they reduce the performance overtime.
You can do online reorgs, but if your running high volumes transactions
24x7 it's a loose - loose situation:
- reduced perfomance because tables /indexes need reorgs
- reduced performance because your running reorgs constantly

Automation is nice, but maybe they can try and resolve the cause of the
high maintance DB2 requires because those high volumes we are running
the online reorgs just cannot keep up.

Well DB2 is old so it must be a feature. I just hope that someday they
announce these reorg features are no more.

Jan 3 '06 #5
be************* *@gmail.com wrote:
Thanks for the tip and suggestions.
I'll try the high percent free value, but the load is not possible. The
application (not ours) just works this way.
I hope one of the options will work, cause else I must say DB2 is not
build for high transaction volumes we are doing and that would be very
sad.
I read about the benefits from type-2 indexes, but there seems to be a
big drawback because it reduce the efficiency of the index big time in
our situation.

Would you mind telling us more about the load.
E.g. do the INSERTs all happen at the end of the index (identity column)?
I haven't heard of issues with TYPE 2 indexes before. Maybe opening a
PMR would be in order to get to the bottom of this....

Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
DB2 UDB for Linux, Unix, Windows
IBM Toronto Lab
Jan 3 '06 #6
Hi Serge,

Well I think we have more than one table having problems with pseudo
keys.
Because of the high transaction volume a table lock is never possible,
so the index leaf pages are never cleaned of pseudo empty pages.
We have one table with one index on a sequence number.
One proces is filling the table the other is reading it bottom up and
deleting the processed rows.
When you do a min(sequence) query using UR it takes > 5 seconds before
we get an answer. After a index reorg it is quick again, wel for a
minute or so.

They way I look at it, it only works if a table lock can be achieved
and that does not seem to be the case. Same thing on other tables.

Jan 3 '06 #7
I am curious ... you are linking this performance to Type-II indexes ... did
you run similar tests with the original Type-I indexes and if so what was
the performance at that time?

The whole point of Type-II indexes and pseudo-deleted keys is that only
those transactions that need to be blocked, are. So transaction rates should
be going up with Type-II as compared to Type-I... hence my question as to
what did you see with Type-I indexes? Do you have any comparative
performance numbers?

The last time I checked (and this "may" have changed), cleanup of pseudo
deleted keys and deletion of pseudo empty pages will be done on the fly by
other transactions after a deleting transaction has completed. Of course,
this can always be manually triggered as you have alluded to, but don't
forget that you now have "online" reorg of indexes. It does not have to be
an offline process.

Bob

§<be*********** ***@gmail.com> wrote in message
news:11******** **************@ g44g2000cwa.goo glegroups.com.. .
Hi Serge,

Well I think we have more than one table having problems with pseudo
keys.
Because of the high transaction volume a table lock is never possible,
so the index leaf pages are never cleaned of pseudo empty pages.
We have one table with one index on a sequence number.
One proces is filling the table the other is reading it bottom up and
deleting the processed rows.
When you do a min(sequence) query using UR it takes > 5 seconds before
we get an answer. After a index reorg it is quick again, wel for a
minute or so.

They way I look at it, it only works if a table lock can be achieved
and that does not seem to be the case. Same thing on other tables.

Jan 3 '06 #8
Hi Bob,

We never used type-1 indexes. We started with version 8.

DB2 IC says under tuning - online index defragmentation :
"For type-2 indexes, keys are removed from a page during key deletion
only when there is an X lock on the table. During such an operation,
online index defragmentation will be effective. However, if there is
not an X lock on the table during key deletion, keys are marked deleted
but are not physically removed from the index page. As a result, no
defragmentation is attempted."

But now I've read it again I'm confused if they mean when this is when
you use MINPCTUSED.

Well I'm open to suggestion why a REORG INDEXES CLEANUP ONLY PAGES will
actually speed things up.
I'm doing this while the applications is running (using ALLOW WRITE
ACCESS).

Jan 3 '06 #9
be************* *@gmail.com wrote:
Hi Serge,

Well I think we have more than one table having problems with pseudo
keys.
Because of the high transaction volume a table lock is never possible,
so the index leaf pages are never cleaned of pseudo empty pages.
We have one table with one index on a sequence number.
One proces is filling the table the other is reading it bottom up and
deleting the processed rows.
When you do a min(sequence) query using UR it takes > 5 seconds before
we get an answer. After a index reorg it is quick again, wel for a
minute or so.

They way I look at it, it only works if a table lock can be achieved
and that does not seem to be the case. Same thing on other tables.

So what you do is queue processing. This, btw, is exactly what TPC-C
does and of course we use type-2 indexes there.
I'll send you some slides as a PDF. They may give you some ideas.

Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
DB2 UDB for Linux, Unix, Windows
IBM Toronto Lab
Jan 3 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
510
by: dgaucher | last post by:
Hi, I want to consume a Web Service that returns a choice, but my C++ client always receives the same returned type. On the other hand, when I am using a Java client, it is working fine (of course, the generated proxy is not the same). When I am looking at the C++ generated code, it seems fine, but when I am executing the code, I always get the first choice type.
6
2685
by: S.Tobias | last post by:
I'm trying to understand how structure type completion works. # A structure or union type of unknown # content (as described in 6.7.2.3) is an incomplete type. It # is completed, for all declarations of that type, by ^^^ # declaring the same structure or union tag with its defining # content later in the same scope. ^^^^^ (6.2.5#23)
0
1770
by: Chris Fink | last post by:
When I am consuming a webservice, an object has an undefined value (inq3Type.Call3Data). I do not completely understand why this is happening and apologize for the vague question. My assumption is that the WSDL is defined incorrectly and .NET cannot parse the types. Any help is greatly appreciated! CustDDGSvc ws = new CustDDGSvc(); ws.Url = "http://dmapfra003.decisionone.com:8080/JISOAP/CustDDGSvc"; // don't understand why the...
1
8697
by: Rob Griffiths | last post by:
Can anyone explain to me the difference between an element type and a component type? In the java literature, arrays are said to have component types, whereas collections from the Collections Framework are said to have an element type. http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html
669
25819
by: Xah Lee | last post by:
in March, i posted a essay “What is Expressiveness in a Computer Languageâ€, archived at: http://xahlee.org/perl-python/what_is_expresiveness.html I was informed then that there is a academic paper written on this subject. On the Expressive Power of Programming Languages, by Matthias Felleisen, 1990. http://www.ccs.neu.edu/home/cobbe/pl-seminar-jr/notes/2003-sep-26/expressive-slides.pdf
3
2823
by: john | last post by:
Hi to All To demonstrate: public class MyBaseGenericClass<T> { } public class MyGenericClass1<T: MyBaseGenericClass<T> {
7
7808
by: Sky | last post by:
I have been looking for a more powerful version of GetType(string) that will find the Type no matter what, and will work even if only supplied "{TypeName}", not the full "{TypeName},{AssemblyName}" As far as I know yet -- hence this question -- there is no 'one solution fits all', but instead there are several parts that have to be put together to check. What I have so far is, and would like as much feedback as possible to ensure I've...
9
3863
by: weirdwoolly | last post by:
Hopefully someone will be able to help. I have written a stored procedure in C++ called from a Java test harness to validate the graphic data types in C++ and their use. I have declared the vargraphic input parameters along the following lines in i_vargraphic100 vargraphic(100) and they are populated from String's in java.
5
3166
by: JH | last post by:
Hi I found that a type/class are both a subclass and a instance of base type "object". It conflicts to my understanding that: 1.) a type/class object is created from class statement 2.) a instance is created by "calling" a class object.
3
17110
by: amanjsingh | last post by:
Hi, I am trying to implement Java Web Service using Apache Axis2 and Eclipse as a tool. I have created the basic code and deployed the service using various eclipse plugin but when I try to invoke the service using client stub, I get this error... Exception in thread "main" java.lang.Error: Unresolved compilation problems: org.apache cannot be resolved to a type org.apache cannot be resolved to a type org.apache cannot be resolved to a...
0
8192
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8637
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8502
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7188
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6119
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4090
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
2621
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1805
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1504
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.