Select to view content in your preferred language

SDE Shared Log Files

708
2
06-25-2013 03:41 PM
SeanRedar
Regular Contributor
Instead of granting each sde user CREATE TABLE/SEQUENCE can the SDE_LOGFILES and SDE_LOGFILE_DATA tables (and sequence) be created in their schema in advanced using sql?
0 Kudos
2 Replies
EmadAl-Mousa
Deactivated User
Hi,

please refer to this documentation for refrence:
http://resources.arcgis.com/en/help/main/10.1/index.html#//002n00000014000000

Regards,
0 Kudos
WilliamCraft
MVP Alum
These tables can be created in advance using the SQL below (formatted for Oracle in the example below) for 9.3.1; you should do some research to see if the same concepts apply in later versions of SDE.  However, notice that I am creating the tables as Global Temp Tables for Oracle.  Esri doesn't do a good job at clearing these tables out when users make large selection sets and then log out.  Global Temp Tables are tables in Oracle that get cleared out automatically by the database when the user disconnects his or her session.  We do this and it's worked very well to help reduce the size of the database overall.  There may be a SQL Server equivalent but I'm not sure of the syntax. 

CREATE GLOBAL TEMPORARY TABLE USER_NAME.SDE_LOGFILE_DATA
   (
    logfile_data_id NUMBER(*,0) NOT NULL ENABLE,
    sde_row_id NUMBER(*,0) NOT NULL ENABLE
   )
ON COMMIT PRESERVE ROWS
/
CREATE INDEX USER_NAME.SDE_LOGFILE_DATA_IDX1
    ON USER_NAME.SDE_LOGFILE_DATA(LOGFILE_DATA_ID,SDE_ROW_ID)
/
CREATE INDEX USER_NAME.SDE_LOGFILE_DATA_IDX2
    ON USER_NAME.SDE_LOGFILE_DATA(SDE_ROW_ID)
/
GRANT DELETE ON USER_NAME.SDE_LOGFILE_DATA TO SDE
/


CREATE GLOBAL TEMPORARY TABLE USER_NAME.SDE_LOGFILES
  (
    logfile_name VARCHAR2(256) NOT NULL ENABLE,
    logfile_id NUMBER(*,0) NOT NULL ENABLE,
    logfile_data_id NUMBER(*,0) NOT NULL ENABLE,
    registration_id NUMBER(*,0) NOT NULL ENABLE,
    flags NUMBER(*,0) NOT NULL ENABLE,
    session_tag NUMBER(*,0) NOT NULL ENABLE,
    logfile_data_db VARCHAR2(32),
    logfile_data_owner VARCHAR2(32),
    logfile_data_table VARCHAR2(98),
    column_name NVARCHAR2(32)
   )
ON COMMIT PRESERVE ROWS
/
CREATE UNIQUE INDEX USER_NAME.SDE_LOGFILES_PK
    ON USER_NAME.SDE_LOGFILES(LOGFILE_ID)
/
CREATE UNIQUE INDEX USER_NAME.SDE_LOGFILS_UK
    ON USER_NAME.SDE_LOGFILES(LOGFILE_NAME)
/
CREATE UNIQUE INDEX USER_NAME.SDE_LOGFILES_UK2
    ON USER_NAME.SDE_LOGFILES(LOGFILE_DATA_ID)
/
GRANT DELETE ON USER_NAME.SDE_LOGFILES TO SDE
/
0 Kudos