CÓMO
Las instrucciones proporcionadas describen cómo informar de las estadísticas de versiones de geodatabase en una geodatabase de SQL Server. El siguiente script SQL informa sobre una geodatabase versionada en SQL Server. El resultado enumera el número de versiones, el número de versiones que bloquean la versión PREDETERMINADA para que se comprima en el estado 0, así como los nombres del propietario de las primeras cinco versiones de bloqueo, el número de estados, el número de entradas en la tabla state_lineages y el número de filas en la tabla versionada y las tablas delta.
Siga las instrucciones proporcionadas a continuación.
SET NOCOUNT ON --Quite la marca de comentario de esta sentencia CREATE TABLE y de la declaración INSERT INTO --en las líneas 150 y 151 para generar una tabla permanente que contenga los recuentos agregados y eliminados. /* create table delta_info ( id int identity(1,1), table_name nvarchar(100), registration_id int, adds int, deletes int ) */ DECLARE @versions_info_tab TABLE ( ver_info_state_id int, source_lin int, com_anc_id int, lin_name int, state_id int ) DECLARE @blocking_list TABLE ( state_id int, name varchar(100) ) DECLARE @delta_table_info TABLE ( a_table_name nvarchar(50), d_table_name nvarchar(50), a_table_count int, d_table_count int ) DECLARE @ver_count int = (SELECT COUNT(*) FROM sde.SDE_versions) DECLARE @state_count int = (SELECT COUNT(*) FROM sde.sde_states) DECLARE @state_lineages_count int = (SELECT COUNT(*) cnt FROM sde.SDE_state_lineages) -- Si nunca se ha comprimido la geodatabase, la tabla SDE_compress_log no existe. DECLARE @last_compress varchar(15) IF EXISTS (SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema IN ('SDE', 'DBO') AND table_name = 'SDE_compress_log') BEGIN SET @last_compress = CONVERT(varchar(15), (SELECT MAX(compress_end) FROM sde.SDE_compress_log), 1) END ELSE BEGIN SET @last_compress = 'No compress log table'; END DECLARE @ver_info_state_id int, @message varchar(100) = '', @source_lin int, @com_anc_id int, @lin_name int, @state_id int, @ver_blocking int = 0, @cur_max_state int, @pos int, @idx int, @s1 int = 0, @s2 int = 0, @s3 int = 0, @s4 int = 0, @s5 int = 0, @blocking_ver_name nvarchar(100), @blocking_ver_count int, @table_info_name varchar(100), @table_info_reg_id int, @table_info_owner varchar(100), @p_stmt nvarchar(200),@a_stmt nvarchar(max), @d_stmt nvarchar(max), @row_count int DECLARE table_info_cur CURSOR FOR SELECT owner, table_name, registration_id FROM sde.sde_table_registry WHERE sde.sde_table_registry.object_flags&8 = 8 DECLARE ver_list_cur CURSOR FOR SELECT DISTINCT state_id FROM sde.sde_versions WHERE name = 'DEFAULT' and owner IN ('SDE', 'DBO') ORDER BY state_id; SELECT @state_id=state_id, @lin_name = lineage_name FROM sde.sde_states WHERE state_id = (SELECT state_id FROM sde.sde_versions WHERE name = 'DEFAULT' and owner IN ('SDE', 'DBO')); SET @cur_max_state = @state_id PRINT '========== Estadísticas de versiones =================' PRINT '' PRINT 'Número de versiones: ' + CONVERT(varchar, @ver_count) PRINT '==============' OPEN ver_list_cur FETCH NEXT FROM ver_list_cur INTO @ver_info_state_id WHILE @@FETCH_STATUS = 0 BEGIN SELECT @row_count = COUNT(*) FROM sde.sde_state_lineages WHERE lineage_name = @lin_name AND lineage_id
Ejemplo de salida: ==========Estadísticas de versiones================= Número de versiones: 2 ============== Número de versiones que bloquean la versión PREDETERMINADA: 1 Versiones de bloqueo: dbo.QA Número de estados: 3577 Número de linajes del estado: 100015 Última operación de compresión: 2018-01-09 Tabla: DBO.CONTROLCORNER (45) Recuento de agregados: 124 Recuento de eliminados: 124 Tabla: DBO.PLSSBOUNDARY (46) Recuento de agregados: 8 Recuento de eliminados: 8
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri