I have an oracle table SY_History with the structure shown below that includes an XML column and contains 17,591 rows. Each row has a small amount of character data. The entire table consumes 22.4MB When opening the table in the Toad for Oracle data grid without any filters (simply displaying it) it generates oracle error ORA-0436 out of PGA memory. If the PGA memory is expanded the toad query will run, but it consumes 6GB and it will display after a long delay. If I filter the table to show only one row it comes up without any problem. I can query against the table and list it in Oracle SQL command window without a problem. The result of an Oracle SR is Oracle feels there is not an oracle issue. Appears to be a TOAD memory leak. Toad version is 12.9.0.71
How does this get corrected?
Thanks
Joe
ALTER TABLE VPAORA.SY_HISTORY
DROP PRIMARY KEY CASCADE;
DROP TABLE VPAORA.SY_HISTORY CASCADE CONSTRAINTS;
CREATE TABLE VPAORA.SY_HISTORY
(
SY_HISTORY_ID NUMBER(20) DEFAULT "VPAORA"."SY_HISTORY_ID"."NEXTVAL",
SY_USER_ID NUMBER(20) CONSTRAINT SY_HISTORY_SU_NN NOT NULL,
SY_CALL_STACK VARCHAR2(4000 BYTE),
SY_ACTION VARCHAR2(20 BYTE) CONSTRAINT SY_HISTORY_AC_NN NOT NULL,
SY_COMMENT VARCHAR2(100 BYTE),
SY_PRIMARY_ID NUMBER(20) CONSTRAINT SY_HISTORY_PO_NN NOT NULL,
SY_CALL_PROGRAM VARCHAR2(100 BYTE),
SY_TABLE VARCHAR2(500 BYTE) CONSTRAINT SY_HISTORY_TB_NN NOT NULL,
SY_COLUMN1 VARCHAR2(500 BYTE),
SY_VALUE1_OLD VARCHAR2(500 BYTE),
SY_VALUE1_NEW VARCHAR2(500 BYTE),
SY_COLUMN2 VARCHAR2(500 BYTE),
SY_VALUE2_OLD VARCHAR2(500 BYTE),
SY_VALUE2_NEW VARCHAR2(500 BYTE),
SY_COLUMN3 VARCHAR2(500 BYTE),
SY_VALUE3_OLD VARCHAR2(500 BYTE),
SY_VALUE3_NEW VARCHAR2(500 BYTE),
SY_USER_ID_ADD NUMBER(20) CONSTRAINT SY_HISTORY_UA_NN NOT NULL,
SY_DATE_ADD DATE CONSTRAINT SY_HISTORY_DA_NN NOT NULL,
SY_USER_ID_MOD NUMBER(20),
SY_DATE_MOD DATE,
SY_UPDATES_XML SYS.XMLTYPE
)
XMLTYPE SY_UPDATES_XML STORE AS SECUREFILE BINARY XML (
TABLESPACE VPAORA
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
ALLOW NONSCHEMA
DISALLOW ANYSCHEMA
LOGGING
NOCOMPRESS
NOCACHE
MONITORING;
COMMENT ON TABLE VPAORA.SY_HISTORY IS 'History of transactions.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_HISTORY_ID IS 'Unique identifier for this history row.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_USER_ID IS 'SY_User_ID of individual initiating the add/change transaction that is generating this history.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_CALL_STACK IS 'Oracle call stack that led to the transaction.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_ACTION IS 'Transaction that caused the change.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_COMMENT IS 'Comment regarding the change, if applicable.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_PRIMARY_ID IS 'Primary Key of row being changed.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_CALL_PROGRAM IS 'Last calling program as recorded through context variable, so not verifiable.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_TABLE IS 'Table whose data is changing';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_COLUMN1 IS 'Name of Column 1 being tracked.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_VALUE1_OLD IS 'Old Value of 1 element before change';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_VALUE1_NEW IS 'New Value of 1 element after change';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_COLUMN2 IS 'Name of Column 2 being tracked.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_VALUE2_OLD IS 'Old Value of 2 element before change';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_VALUE2_NEW IS 'New Value of 2 element after change';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_COLUMN3 IS 'Name of Column 3 being tracked.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_VALUE3_OLD IS 'Old Value of 3 element before change';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_VALUE3_NEW IS 'New Value of 3 element after change';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_USER_ID_ADD IS 'User VPA_Person_ID who originally added this row.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_DATE_ADD IS 'Date row originally added.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_USER_ID_MOD IS 'User VPA_Person_ID who last modified this row.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_DATE_MOD IS 'Date row last updated.';
COMMENT ON COLUMN VPAORA.SY_HISTORY.SY_UPDATES_XML IS 'History of changes to table data values by table and column in XML format.';
CREATE INDEX VPAORA.SY_HISTORY_PI ON VPAORA.SY_HISTORY
(SY_PRIMARY_ID)
LOGGING;
CREATE UNIQUE INDEX VPAORA.SY_HISTORY_PK ON VPAORA.SY_HISTORY
(SY_HISTORY_ID)
LOGGING;
CREATE INDEX VPAORA.SY_HISTORY_TB ON VPAORA.SY_HISTORY
(SY_TABLE)
LOGGING;
CREATE INDEX VPAORA.SY_HISTORY_UI ON VPAORA.SY_HISTORY
(SY_USER_ID)
LOGGING;
ALTER TABLE VPAORA.SY_HISTORY ADD (
CONSTRAINT SY_HISTORY_PK
PRIMARY KEY
(SY_HISTORY_ID)
USING INDEX VPAORA.SY_HISTORY_PK
ENABLE VALIDATE);