![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I have heard various different stories from IBM about whether (and how) DB2 uses bufferpools for PureXML. At first, IBM claimed that bufferpools were used (even when XML columns were not inlined), but when asked whether it was the same bufferpool as the table or index data (as defined in the CREATE TABLE statement) the answer is no, it is some other bufferpool. But what other bufferpool is it? Is it really a bufferpool (syscat.bufferpools) or some other memory heap or disk caching? How can we track or configure how much memory is used for these memory heaps, and how do they work compared to regular bufferpools. Would it be advisable to specify a separate LONG tablespace for tables with XML columns (not inlined, or at least not likely to fit in inline space), and then make sure that tablespace has file system caching turned on (assuming we have file system caching off for regular and indextablespaces)? |
#3
| |||
| |||
|
|
Have you tried monitoring using the pool_xda_l_reads and related elements? |
#4
| |||
| |||
|
|
On Fri, 04 May 2012 06:42:25 -0700, Frederik Engelen wrote: Have you tried monitoring using the pool_xda_l_reads and related elements? No, I have not. Recently, George Baklarz from the Toronto lab gave a presentation at my company and I asked him about this question, and he initially said (as others in IBM have claimed) that PureXML uses bufferpools for XML data (including data not inlined), but when I asked him which bufferpool, he said PureXML does not use the bufferpool assigned to the tablespaces specified in the create table statement. He did not know any additional information. I am beginning to wonder if XML columns actually use a bufferpool, or whether they act like LOB columns, since no one can provide any specifics to my questions. Perhaps there is some other memory heap used, but I want to know which one, and exactly how it works, and how much memory is allocated for such purposes. |
#5
| |||
| |||
|
|
About half a year ago I visited "DB2 Galileo Day" in Amsterdam, an event organised by IBM as part of a European tour to give a technical preview of DB2 10 (and attract customer sites for their beta program). The guy that gave all (!) presentations was Henrik Loeser from IBM Germany who had spent quite some years in the US Research Labs, involved with the development of PureXML. Henrik has written a number of articles on PureXML on his blog that probably may be of interest to you, and I am sure he doesn't mind if you contact him directly if you have specific questions on the subject. Here's a few PureXML-related pointers to his blog, I'm sure you will be able to find more: http://blog.4loeser.net/2009/02/db2-...fferpools-xda- object.html http://blog.4loeser.net/2009/03/puzz...ons-index.html http://blog.4loeser.net/2009/11/smal...-fast-lob.html http://blog.4loeser.net/2010/11/pure...explained.html Cheers! |
#6
| |||
| |||
|
|
Thank you for those links. One interesting thing is that XML data will beplaced in the LONG tablespace if specified in the CREATE table, but unlike LOB columns, does use the bufferpool assigned to that tablespace. I am not sure that is a complete explanation of how it works,but does help. |
#7
| |||
| |||
|
|
Hey, XML data is indeed buffered, regardless of whether it is inlined or stored in the XDA object. When it is inlined, i.e., stored as part of the row, it will use the same bufferpool (and tablespace) as the regular (relational) data, i.e., the DAT object. For the XML data stored in the XDA, you can specifiy LONG IN as part of CREATE TABLE. Then, the XML data goes to that tablespace and uses the associated bufferpool. I hope that helps. I will write a blog article about it shortly. Henrik |
![]() |
| Thread Tools | |
| Display Modes | |
| |