diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c index e75814dd8e830a45367fb19532af9996c9694ca7..512f2b087989ad121b589612cdc90570325aee5c 100644 --- a/src/backend/access/nbtree/nbtree.c +++ b/src/backend/access/nbtree/nbtree.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.17 1997/03/24 08:48:11 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.18 1997/04/18 03:37:53 vadim Exp $ * * NOTES * This file contains only the public interface routines. @@ -33,6 +33,12 @@ # include #endif +#ifdef BTREE_BUILD_STATS +#include +extern int ShowExecutorStats; +#endif + + bool BuildingBtree = false; /* see comment in btbuild() */ bool FastBuild = true; /* use sort/build instead of insertion build */ @@ -77,10 +83,6 @@ btbuild(Relation heap, bool isunique; bool usefast; -#if 0 - ResetBufferUsage(); -#endif - /* note that this is a new btree */ BuildingBtree = true; @@ -95,6 +97,11 @@ btbuild(Relation heap, */ usefast = (FastBuild && IsNormalProcessingMode()); +#ifdef BTREE_BUILD_STATS + if ( ShowExecutorStats ) + ResetUsage (); +#endif + /* see if index is unique */ isunique = IndexIsUniqueNoCache(RelationGetRelationId(index)); @@ -278,18 +285,15 @@ btbuild(Relation heap, _bt_spooldestroy(spool); } -#if 0 +#ifdef BTREE_BUILD_STATS + if ( ShowExecutorStats ) { - extern int ReadBufferCount, BufferHitCount, BufferFlushCount; - extern long NDirectFileRead, NDirectFileWrite; - - printf("buffer(%d): r=%d w=%d\n", heap->rd_rel->relblocksz, - ReadBufferCount - BufferHitCount, BufferFlushCount); - printf("direct(%d): r=%d w=%d\n", LocalBlockSize, - NDirectFileRead, NDirectFileWrite); + fprintf(stderr, "! BtreeBuild Stats:\n"); + ShowUsage (); + ResetUsage (); } #endif - + /* * Since we just counted the tuples in the heap, we update its * stats in pg_class to guarantee that the planner takes advantage diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c index 6e382982a9bf129c742ae0f0556af77ba60a2856..978e73d33149249bf25fca46264cdd3beed94df3 100644 --- a/src/backend/access/nbtree/nbtsort.c +++ b/src/backend/access/nbtree/nbtsort.c @@ -5,7 +5,7 @@ * * * IDENTIFICATION - * $Id: nbtsort.c,v 1.14 1997/04/16 01:48:27 vadim Exp $ + * $Id: nbtsort.c,v 1.15 1997/04/18 03:37:57 vadim Exp $ * * NOTES * @@ -63,6 +63,11 @@ # include #endif +#ifdef BTREE_BUILD_STATS +#include +extern int ShowExecutorStats; +#endif + /* * turn on debugging output. * @@ -427,7 +432,7 @@ _bt_tapewrite(BTTapeBlock *tape, int eor) { tape->bttb_eor = eor; FileWrite(tape->bttb_fd, (char *) tape, TAPEBLCKSZ); - NDirectFileWrite += TAPEBLCKSZ; + NDirectFileWrite += TAPEBLCKSZ/MAXBLCKSZ; _bt_tapereset(tape); } @@ -463,7 +468,7 @@ _bt_taperead(BTTapeBlock *tape) return(0); } Assert(tape->bttb_magic == BTTAPEMAGIC); - NDirectFileRead += TAPEBLCKSZ; + NDirectFileRead += TAPEBLCKSZ/MAXBLCKSZ; return(1); } @@ -1366,5 +1371,16 @@ void _bt_leafbuild(Relation index, void *spool) { _bt_isortcmpinit (index, (BTSpool *) spool); + +#ifdef BTREE_BUILD_STATS + if ( ShowExecutorStats ) + { + fprintf(stderr, "! BtreeBuild (Spool) Stats:\n"); + ShowUsage (); + ResetUsage (); + } +#endif + _bt_merge(index, (BTSpool *) spool); + }