1c 8 conflicto de bloqueo durante la ejecución de la transacción. Cómo diagnosticé los problemas de bloqueo. Un gran número de operaciones

No es raro que al trabajar en 1C se presente el error “Conflicto de bloqueo durante la ejecución de la transacción: Se ha excedido el tiempo máximo de espera para otorgar un bloqueo”. Su esencia radica en el hecho de que varias sesiones intentan realizar simultáneamente acciones similares, afectando el mismo recurso. Hoy descubriremos cómo solucionar este error.

Un gran número de operaciones

El primer paso al buscar razones debe ser aclarar cuántos usuarios concurrentes hay en ese base de información, que produce un error similar. Como sabemos, su número máximo puede ser bastante grande. Son mil cinco mil.

El mecanismo de bloqueos y transacciones se describe en la guía del desarrollador. Se utilizan cuando varias sesiones acceden a los mismos datos al mismo tiempo. Es lógico que los mismos datos no puedan ser modificados por diferentes usuarios en el mismo momento.

También debe verificar si alguno de los usuarios ha comenzado a procesar el cambio masivo de datos. Puede ser como , cierre de mes y similares. En este caso, una vez finalizado el procesamiento, el error desaparecerá por sí solo.

Tareas programadas

No es raro que la causa del error resida en que se procesa una gran cantidad de datos. Se recomienda hacer tales cosas por la noche. Programar la ejecución de dichas tareas programadas fuera del horario laboral.

Por lo tanto, ambos usuarios trabajarán en un sistema estable y las tareas programadas se completarán con éxito, ya que disminuirá la probabilidad de conflictos con las sesiones de los usuarios.

"Sesiones atascadas"

El problema de las "sesiones colgadas" de los usuarios es familiar para casi todos los que se han encontrado con el servicio 1C. El usuario pudo haber salido del programa hace mucho tiempo, o haber cerrado un documento, pero su sesión aún permanece en el sistema. El problema suele ser único y basta con finalizar dicha sesión a través de la consola del administrador. Los mismos problemas pueden ocurrir con los trabajos en segundo plano.

Según numerosos comentarios en Internet, este tipo de situaciones son más comunes cuando se utilizan claves de seguridad de red. Si la situación de "sesiones colgadas" se repite sistemáticamente, es motivo de revisión y mantenimiento exhaustivo del sistema y servidores (si la base es cliente-servidor).

Errores al escribir la configuración

Todas las configuraciones típicas son desarrolladas por especialistas y expertos calificados. Cada sistema es cuidadosamente probado y optimizado para un trabajo más rápido y correcto en el mismo.

En este sentido, la causa del error puede residir en un código subóptimo escrito por un desarrollador externo. Esta puede ser una solicitud "pesada" que bloqueará los datos durante un largo período de tiempo. Tampoco es raro construir algoritmos con bajo rendimiento y violación de la lógica.

Es muy probable que surja un conflicto de bloqueo precisamente por errores del desarrollador si surgió después de actualizar el programa. Para verificar, simplemente puede "revertir" las mejoras o refactorizar el código.

No pude anotar los cambios para la transferencia a una base de datos distribuida, me comuniqué con el soporte de 1c y ofrecí lo siguiente. Decidí simplemente reiniciar el servidor de aplicaciones y el servidor con SQL. En general, puede marcar la casilla “Bloqueo programado
tareas incluidas"
También ayudó sin reiniciar.

Operaciones programadas a nivel DBMS para MS servidor SQL

Instrucciones para realizar operaciones de rutina a nivel de DBMS.

La información es aplicable a la versión cliente-servidor de 1C:Enterprise 8 cuando se usa MS SQL Server DBMS.

Información general

Una de las causas más comunes del funcionamiento no óptimo del sistema es la ejecución incorrecta o fuera de tiempo de las operaciones de rutina a nivel de DBMS. Es especialmente importante seguir estos procedimientos de rutina en grandes sistemas de información ah, que funcionan bajo una carga significativa y sirven a una gran cantidad de usuarios al mismo tiempo. La especificidad de tales sistemas es que las acciones habituales realizadas automáticamente por el DBMS (basadas en la configuración) no son suficientes para una operación eficiente.

Si un sistema en ejecución muestra algún síntoma de problemas de rendimiento, debe verificar que el sistema esté configurado correctamente y que realice periódicamente todo el mantenimiento de rutina recomendado a nivel de DBMS.

La ejecución de los procedimientos de rutina debe estar automatizada. Para automatizar estas operaciones, se recomienda utilizar las herramientas integradas de MS SQL Server: Plan de mantenimiento. También hay otras formas de automatizar estos procedimientos. En este artículo, para cada procedimiento programado, se da un ejemplo de su configuración utilizando el Plan de Mantenimiento para MS SQL Server 2005.

Se recomienda monitorear regularmente la puntualidad y corrección de la implementación de estos procedimientos de rutina.

Actualización de estadísticas

MS SQL Server construye un plan de consulta basado en información estadística sobre la distribución de valores en índices y tablas. La información estadística se recopila sobre la base de una parte (muestra) de datos y se actualiza automáticamente cuando estos datos cambian. A veces, esto no es suficiente para que MS SQL Server construya de manera consistente el plan más óptimo para ejecutar todas las consultas.

En este caso, pueden ocurrir problemas de rendimiento de consultas. Al mismo tiempo, se observan signos característicos de trabajo no óptimo (operaciones no óptimas) en los planes de consulta.

Para garantizar el funcionamiento más correcto del optimizador de MS SQL Server, se recomienda actualizar periódicamente las estadísticas de la base de datos de MS SQL.

Para actualizar las estadísticas de todas las tablas de la base de datos, debe ejecutar la siguiente consulta SQL:

exec sp_msforeachtable N"¿ACTUALIZAR ESTADÍSTICAS? CON FULLSCAN"

La actualización de estadísticas no provoca el bloqueo de tablas y no interferirá con el trabajo de otros usuarios. Las estadísticas se pueden actualizar tantas veces como sea necesario. Debe tenerse en cuenta que aumentará la carga en el servidor DBMS durante la actualización de las estadísticas, lo que puede afectar negativamente el rendimiento general del sistema.

La frecuencia óptima de actualización de estadísticas depende de la magnitud y la naturaleza de la carga en el sistema y se determina experimentalmente. Se recomienda actualizar las estadísticas. al menos una vez al día.

La consulta anterior actualiza las estadísticas de todas las tablas de la base de datos. En un sistema de la vida real, diferentes tablas requieren diferentes tasas de actualización de estadísticas. Al analizar los planes de consulta, puede determinar qué tablas necesitan las actualizaciones de estadísticas más frecuentes y configurar dos (o más) procedimientos de rutina diferentes: para las tablas que se actualizan con frecuencia y para todas las demás tablas. Este enfoque reducirá significativamente el tiempo de actualización de estadísticas y el impacto del proceso de actualización de estadísticas en el funcionamiento del sistema en su conjunto.

Configuración de la actualización automática de estadísticas (MS SQL 2005)

Inicie MS SQL Server Management Studio y conéctese al servidor DBMS. Abra la carpeta Gestión y cree Nuevo plan Servicio:

Cree un subplan (Agregar subplan) y asígnele el nombre "Actualización de estadísticas". Agregue la tarea Actualizar estadísticas desde la barra de tareas:

Configure un programa de actualización de estadísticas. Se recomienda actualizar las estadísticas al menos una vez al día. Si es necesario, se puede aumentar la frecuencia de actualización de las estadísticas.

Establezca la configuración de la tarea. Para hacer esto, haga doble clic en la tarea en la esquina inferior derecha de la ventana. En el formulario que aparece, especifique el nombre de la base de datos (o varias bases de datos) para las que se actualizarán las estadísticas. Además, puede especificar para qué tablas actualizar las estadísticas (si no sabe exactamente qué tablas necesita especificar, establezca el valor en Todas).

La actualización de las estadísticas debe realizarse con la opción Análisis completo habilitada.

Guarde el plan creado. Cuando llegue la hora especificada en el cronograma, las estadísticas se actualizarán automáticamente.

Borrar la caché de procedimientos

El optimizador de MS SQL Server almacena en caché los planes de consulta para volver a ejecutarlos. Esto se hace para ahorrar tiempo en compilar una consulta si la misma consulta ya se ejecutó y se conoce su plan.

Es posible que MS SQL Server, basándose en información estadística obsoleta, cree un plan de consulta no óptimo. Este plan se almacenará en la caché de procedimientos y se usará cuando se vuelva a invocar la misma consulta. Si actualizó las estadísticas pero no borró la memoria caché de procedimiento, SQL Server puede elegir el plan de consulta anterior (no óptimo) de la memoria caché en lugar de crear un plan nuevo (mejor).

Para borrar la caché de procedimientos de MS SQL Server, debe ejecutar la siguiente consulta SQL:

Esta consulta debe ejecutarse inmediatamente después de actualizar las estadísticas. En consecuencia, la frecuencia de su ejecución debe coincidir con la frecuencia de actualización de las estadísticas.

Configuración de limpieza de caché de procedimientos (MS SQL 2005)

Dado que la caché de procedimientos debe borrarse cada vez que se actualizan las estadísticas, se recomienda agregar esta operación al subplan "Actualizar estadísticas" ya creado. Para hacer esto, abra el subplan y agregue la tarea Ejecutar instrucción T-SQL a su esquema. Luego, debe conectar la tarea Actualizar estadísticas con una flecha a la nueva tarea.

En el texto de la tarea Ejecutar declaración T-SQL creada, debe especificar la consulta "DBCC FREEPROCCACHE":

Desfragmentación de índice

Cuando se trabaja intensamente con tablas de bases de datos, se produce el efecto de fragmentación de índices, lo que puede conducir a una disminución de la eficiencia de las consultas.

sp_msforeachtable N"DBCC INDEXDEFRAG (<имя базы данных>, ""?"")"

La desfragmentación de índices no bloquea las tablas y no interferirá con el trabajo de otros usuarios; sin embargo, crea una carga adicional en SQL Server. La frecuencia óptima para realizar este procedimiento de rutina debe seleccionarse de acuerdo con la carga del sistema y el efecto obtenido de la desfragmentación. Le recomendamos que desfragmente sus índices al menos una vez a la semana.

Es posible desfragmentar una o más tablas, no todas las tablas de la base de datos.

Configuración de la desfragmentación de índices (MS SQL 2005)

En el plan de mantenimiento creado anteriormente, cree un nuevo subplan llamado "Reindexar". Agregue una tarea de índice de reconstrucción:

Establezca el cronograma de ejecución para la tarea de desfragmentación del índice. Se recomienda ejecutar la tarea al menos una vez a la semana, y si los datos en la base de datos son muy volátiles, incluso con más frecuencia, hasta una vez al día.

Reindexación de tablas de base de datos

La reindexación de tablas incluye una reconstrucción completa de los índices de las tablas de la base de datos, lo que conduce a una optimización significativa de su trabajo. Se recomienda realizar una reindexación periódica de las tablas de la base de datos. Para reindexar todas las tablas de la base de datos, debe ejecutar la siguiente consulta SQL:

sp_msforeachtable N"DBCC DBREINDEX(""?"")"

La reindexación de tablas las bloquea mientras dura su trabajo, lo que puede afectar significativamente el trabajo de los usuarios. En este sentido, se recomienda realizar la reindexación durante la carga mínima del sistema.

Después de reindexar, no es necesario desfragmentar los índices.

Configuración de la reindexación de tablas (MS SQL 2005)

En el plan de mantenimiento creado anteriormente, cree un nuevo subplan llamado "Desfragmentación de índice". Agregue una tarea de índice de reconstrucción:

Establezca el cronograma de ejecución para la tarea de reindexación de la tabla. Se recomienda ejecutar la tarea durante la carga mínima en el sistema, al menos una vez a la semana.

Personalice la tarea especificando la base de datos (o varias bases de datos) y seleccionando las tablas requeridas. Si no sabe exactamente qué tablas especificar, establezca el valor en Todo.

“Conflicto de bloqueo durante la ejecución de la transacción: se ha excedido el tiempo de espera máximo para otorgar un bloqueo” es un error bastante común en 1C 8.3 y 8.2 asociado con la competencia por el uso de recursos en el sistema.

El sistema 1C permite que una gran cantidad de usuarios trabajen en paralelo: como muestran las pruebas de carga, hoy ese número no se limita a cinco mil usuarios que trabajan simultáneamente en el sistema. Sin embargo, para que la base de datos 1C 8 admita simultáneamente una gran cantidad de usuarios, la configuración debe diseñarse correctamente.

Obtenga lecciones en video de 267 1C gratis:

Realización de un gran número de operaciones.

Es probable que algún usuario haya iniciado, por ejemplo, durante un período prolongado en una sola transacción. La arquitectura 1C 8.3 asume que el sistema no permite cambiar los datos que se utilizan en una transacción por otro usuario y los bloquea.

Quizás este sea un error temporal que dejará de ocurrir cuando otro usuario complete acciones en el sistema. Si este error aparece con frecuencia, lo más probable es que sea otra cosa.

Error de configuración

Además de los errores en el código, a menudo hay soluciones metódicamente incorrectas. Por ejemplo, - implica en sí mismo la tenencia secuencial de documentos. La contabilidad por lotes se puede reemplazar por RAUS; de esta manera, aumentará significativamente el rendimiento del sistema.

¿Cómo solucionar este error en 1C 8.3?

En cualquier caso, la aparición del error “Conflicto de bloqueo durante la ejecución de la transacción” indica la necesidad de inspeccionar el sistema, especialmente para sistemas de información medianos y grandes en modo cliente-servidor (MS SQL, PostgreSQL, etc.). Si esto se ignora en una etapa temprana, puede haber consecuencias irreversibles más adelante, cuando la operación del sistema es especialmente importante (durante el período del informe).

Para la auditoría y la corrección de errores, lo mejor es elegir un socio confiable. Solo llámanos y resolveremos cualquiera de tus problemas en lo antes posible. Detalles en la página.

Cuando cientos de usuarios trabajan con programas y datos al mismo tiempo, surgen problemas inherentes solo a las soluciones a gran escala. Estamos hablando de problemas causados ​​por bloqueos de datos.

A veces, los usuarios se enteran de bloqueos a partir de mensajes que indican la incapacidad de escribir datos o realizar alguna otra operación. A veces debido a una caída muy significativa en el rendimiento del programa (por ejemplo, cuando el tiempo requerido para realizar una operación crece decenas o cientos de veces).

Los problemas causados ​​por el bloqueo no tienen una solución general. Por lo tanto, intentaremos analizar las causas de tales problemas y sistematizar las opciones para su solución.

RAZONES PARA EL BLOQUEO DE TRANSACCIONES

Primero recordemos qué son los bloqueos y, al mismo tiempo, descubriremos si son necesarios. Veamos un par de ejemplos clásicos de bloqueo que encontramos en la vida.

Ejemplo 1: Comprar un billete de avión o de tren. Supongamos que expresamos nuestros deseos al cajero. El cajero nos indica la disponibilidad de plazas, entre las que podemos elegir la que más nos guste (si son varias, claro). Hasta que elijamos y confirmemos nuestro acuerdo con la opción propuesta, estos asientos no se pueden vender a nadie más, es decir. bloqueado temporalmente. Si no estuvieran bloqueados, en el momento de la confirmación podría darse una situación en la que las entradas que hemos elegido ya se hayan vendido. Y en este caso, el ciclo de selección puede ser un número impredecible de repeticiones. Mientras vamos eligiendo lugares, pero ya se han vendido!.. Mientras vamos eligiendo otros, y ya no están...

Ejemplo 2: comprar algo en una tienda o mercado. Subimos al mostrador, elegimos la manzana más bonita de las cien disponibles. Eligieron y metieron la mano en su bolsillo por dinero. ¿Cómo se verá si, mientras contamos el dinero, es la manzana que hemos elegido la que se venderá al comprador que llegó más tarde que nosotros?

Así, el bloqueo en sí mismo es un fenómeno necesario y útil. Es gracias al bloqueo que garantizamos la ejecución de acciones en una etapa. Y la mayoría de las veces, no la implementación más exitosa conduce a resultados negativos. software cuando, por ejemplo:

  • se bloquea un número excesivo de objetos (boletos, manzanas);
  • el tiempo de bloqueo se extiende injustificadamente.

ENCLAVAMIENTOS EXCESIVOS EN CONFIGURACIONES 1C TÍPICAS

En proyectos grandes, por regla general, utilizamos 1C:Enterprise. Entonces Consejo practico Intentaremos describir las soluciones a los problemas de bloqueo utilizando el ejemplo del paquete 1C:Enterprise + MS-SQL.

La octava generación de 1C:Enterprise proporciona un paralelismo de uso muy, muy bueno. Simultáneamente con una configuración (es decir, en una base), con servidores y canales de comunicación normales, puede funcionar gran cantidad usuarios Por ejemplo, cientos de tenderos procesan la emisión o recepción de bienes, los economistas calculan simultáneamente el costo de los salarios para varios departamentos, los contadores calculan y calculan los salarios, etc.

Pero hay una razón por la que existe una opinión contraria: el mito de que, con un uso simultáneo intensivo, trabajar con soluciones basadas en 1C: Enterprise es incómodo o imposible. Después de todo, tan pronto como las soluciones estándar para 1C:Enterprise comiencen a ser utilizadas por cientos de usuarios en escala industrial, cada vez más aparece una ventana en la pantalla con una inscripción orgullosa: "Error al llamar al método de contexto (Registro): Conflicto de bloqueo durante la ejecución de la transacción: ..." y más, según el tipo de servidor SQL utilizado, algo como "Microsoft OLE DB Provider for SQL Server: se excedió el período de tiempo de espera de la solicitud de bloqueo. ...".

Casi todas las soluciones estándar en la implementación "lista para usar" propuesta están configuradas para la gestión automática de bloqueos. "Automático" aquí puede tomarse como "paranoico". Por si acaso, al realizar cualquier documento, bloqueamos todo lo que pueda estar relacionado de alguna manera con él. Entonces resulta que cuando un usuario gasta algo (ya veces solo escribe), el resto solo puede esperar.

Expresaré mi opinión de por qué 1C decidió no personalizar sus soluciones estándar para un alto paralelismo de uso. Los costos de mano de obra para dicho refinamiento no son altos: unos pocos "meses-persona", lo que no es significativo en términos de escala 1C. Creo que la razón es diferente.

En primer lugar, tal refinamiento complica significativamente los procesadores para publicar todos los documentos. Esto significa que para aquellos consumidores que usan 1C para tareas pequeñas, sin ninguna ganancia, solo habrá un inconveniente: la complejidad de finalizar una configuración típica se volverá más complicada. Al mismo tiempo, las estadísticas sugieren qué categoría de clientes es el principal alimentador de 1C ...

La segunda razón está oculta en la configuración básica típica de los servidores SQL, por ejemplo, MS-SQL, que todavía se usa con más frecuencia que otros. Dio la casualidad de que las prioridades en la configuración se dan para ahorrar RAM del servidor y no para reducir el bloqueo. Esto lleva al hecho de que, si es necesario bloquear varias filas, el servidor SQL toma una decisión "económica" para la memoria y el procesador: ¡bloquear toda la tabla a la vez!..

Aquí están los defectos soluciones estándar o los detalles de la configuración del servidor de base de datos que se utiliza a menudo se combinan con problemas causados ​​por bloqueos. Como resultado, las deficiencias técnicas conducen a problemas organizativos muy importantes. Después de todo, si a un empleado se le da una razón para distraerse del trabajo o se le justifica por qué no se puede hacer el trabajo, una minoría trabajará de manera efectiva. Bueno, un mensaje sobre el bloqueo de transacciones o un programa de "ralentización" es una justificación ideal por la que no se puede hacer nada.

RECOMENDACIONES PARA LA ELIMINACIÓN DEL BLOQUEO EXCESIVO PARA 1C:ENTERPRISE

¿Qué hacer si la solución de problemas de bloqueo excesivo es tan importante?

En la etapa final de implementación de todos los complejos grandes, es necesario realizar un refinamiento fino para eliminar bloqueos de transacciones innecesarios. Es fundamental para resolver los problemas que pueden surgir de condiciones de bloqueo o metodología de implementación insuficientemente desarrolladas.

Porque Esta operación es sumamente importante, debe realizarse constantemente. Por lo tanto, para simplificar la implementación de dicho refinamiento, hemos desarrollado una serie de recomendaciones básicas que tratamos de cumplir. Recomendaciones recibidas y probadas sobre la experiencia de un número significativo de implementaciones a gran escala.

  1. Si su DBMS o sistema de desarrollo (por ejemplo, 1C:Enterprise) utiliza el modo de bloqueo automático de datos de forma predeterminada, deséchelo Control automático Cerraduras. Configure las reglas de bloqueo usted mismo, describa los criterios de bloqueo para tablas completas o filas individuales.
  2. Al desarrollar un programa, siempre que sea posible, consulte las tablas en el mismo orden.
  3. Trate de no escribir en la misma tabla varias veces dentro de la misma transacción. Si esto es difícil, al menos minimice la cantidad de tiempo entre la primera y la última operación de escritura.
  4. Analizar la posibilidad de deshabilitar el escalado de bloqueos a nivel de servidor SQL.
  5. Informar claramente a los usuarios sobre los motivos de la imposibilidad de realizar alguna acción si se debe a un bloqueo. Dar recomendaciones accesibles y comprensibles sobre qué hacer a continuación.

Si observa detenidamente las recomendaciones, queda claro que tal desarrollo es apropiado no solo para 1C:Enterprise, sino para cualquier sistema. No importa en qué idioma estén escritos y con qué servidor de base de datos trabajen. La mayoría de las recomendaciones son de carácter universal y, por lo tanto, son igualmente válidas cuando se utiliza 1C: Enterprise y para programas "autoescritos" u otros sistemas ERP "en caja".

PD ¿Sabías que ofrecemos asistencia profesional para actualizar 1C al mejor precio?

Etiquetas de búsqueda:
  • Bloqueos de transacciones
  • Eliminación de bloqueos
  • Bloqueo 1C
  • bloqueando
  • Conflicto de bloqueo
  • Conflicto de bloqueo al ejecutar una transacción

¿Qué son los candados en 1C, por qué son necesarios y cómo evitar problemas al trabajar con ellos?

Seguramente, muchos de ustedes, al usar los sistemas de información 1C Enterprise (1C 7.7, 1C 8.1, 1C 8.2, 1C 8.3), se han encontrado con un fenómeno como el bloqueo. Además, como regla, todos llaman a este fenómeno de manera diferente: "bloqueos 1C", "conflicto de bloqueo 1C", "errores de bloqueo 1C", "bloqueos de transacción 1C" y otros nombres. Comprendamos brevemente qué son los bloqueos (no puntos muertos), por qué son necesarios y cómo evitar problemas al trabajar con ellos.


Se bloquea solo (incluso en 1C y en otros sistemas) Herramienta útil, que proporciona la capacidad de trabajar secuencialmente con recursos compartidos. Por ejemplo, el concepto de “recursos compartidos” nos rodea en la vida, por ejemplo, mientras conduces un automóvil, nadie más puede conducirlo. Por lo tanto, un automóvil es un recurso compartido. Y el segundo conductor está esperando que llegue, por ejemplo, su esposa/esposo. Ambos están compitiendo por un recurso común: un automóvil. Quién conducirá el automóvil en el momento actual lo determina a nivel conceptual, pero cómo deberíamos estar en sistemas automatizados??? Para hacer esto, se les ocurrió una herramienta bloqueando, que organizan el proceso de acceso a un recurso compartido y definen una cola. Como regla general, en la vida, como en los sistemas de información (1C 7.7, 1C 8.1, 1C 8.2, 1C 8.3), hay muchos recursos comunes y, por lo tanto, también hay muchos bloqueos. ahora segundo punto importante- ¿Cuánto tiempo esperará la esposa / esposo para el lanzamiento de su automóvil? Es lógico suponer que no durará para siempre. Por lo tanto, para bloqueos, se establece un límite de tiempo de espera; de lo contrario, el tiempo de espera. El tiempo de espera es la cantidad máxima de tiempo que un participante rival (su esposa/esposo) puede esperar a que se libere un recurso compartido. Entonces, o sigue esperando el mismo tiempo, o va a pie. En los sistemas de información 1C, la expiración del tiempo de espera finaliza con el mensaje "Conflicto de bloqueo de 1C", "Errores de bloqueo de 1C", "Bloqueos de transacciones de 1C", "Tiempo de espera en bloqueo".

Un detalle importante que también debe recordarse es que los bloqueos (en particular en 1C) son explícitos (establecidos por el usuario) e implícitos (establecidos por la plataforma SQL). En el artículo estamos hablando de bloqueos explícitos, por lo que siempre se utilizan en una transacción, por lo que resulta que "1C Lock" y "1C Transaction Lock" son sinónimos.

Decidimos que cuando se excede el tiempo de espera, se muestra un mensaje de error al usuario, el proceso de espera en sí parece una pantalla adhesiva del sistema de información 1C para él. Los siguientes indicadores influyen en la probabilidad de un mensaje de tiempo de espera (errores 1C para el usuario):

  • Muchos bloqueos 1C en una transacción;
  • Duración de la transacción.

Para minimizar los mensajes asociados con los errores de bloqueo, es necesario reducir el conjunto de bloqueos (optimizar la selectividad) o reducir la duración de las transacciones.
Ahora decidamos cómo se puede influir en estos indicadores en un sistema de información 1C real.

Para reducir mucho el bloqueo:

En 1C: Empresa 7.7:

Sistema de información 1C 7.7. para los candados se utilizan candados de mesa, que paralizan el trabajo de los usuarios. Como regla, más de 50 personas en una base de datos no pueden trabajar sin errores, mientras que los problemas también pueden aparecer en bases de datos de 20 usuarios.
Solución:

  • Cerraduras flexibles 1C de la empresa "Softpoint". Con su ayuda, no solo optimizará muchos bloqueos (reemplazando los bloqueos de tablas con bloqueos personalizados), sino que también acelerará las selecciones, las búsquedas y los informes.
En 1C:Enterprise 8.x:
Sistema de información 1C 8.1., 1C 8.2., 1C 8.3. utiliza automáticamente bloqueos de tipo redundante (REPEATABLEREAD, SERIALIZABLE). Esto conduce a un deterioro en la experiencia del usuario de 100.
Solución:
  • Managed locks 1C es una herramienta integrada de la plataforma 1C para configuraciones de bloqueo más selectivas. Para usarlo, el programador debe escribir operadores especiales en los lugares correctos del código para bloquear los necesarios ( ¡en su opinión!) entradas en las tablas del sistema de información;
  • Cerraduras flexibles 1C - Tecnología Softpoint para la sustitución de cerraduras estándar por personalizadas.

Para reducir la duración de las transacciones:

Para cualquier sistema de información 1C (1C 7.7., 1C 8.1, 1C 8.2, 1C 8.3), así como para otros sistemas de información, se utilizan enfoques similares:

    Comprobación y configuración correcta del mantenimiento regular de la base de datos (mantenimiento de archivos, índices, estadísticas, bases de datos de tablas temporales, configuración de Windows y SQLServer);

    Análisis y optimización de consultas SQL y 1C pesadas (ajuste de índice, reescritura de consultas);

    Comprobación de redundancia de transacciones. En muchos casos, no es razonable incluir operaciones en una transacción sin darse cuenta de cómo esto afectará la duración y, con ello, el rendimiento.

  1. Si desea abordar de forma independiente los problemas de rendimiento técnico de 1C (1C 7.7, 1C 8.1, 1C 8.2, 1C 8.3) y otros sistemas de información , entonces tiene una lista única de artículos técnicos en nuestro Almanaque (Bloqueos y interbloqueos, alta carga de CPU y disco, mantenimiento de bases de datos y ajuste de índices son solo una pequeña parte de los materiales técnicos que encontrará allí).
  2. Si desea hablar sobre problemas de rendimiento con nuestro experto o pedir una solución de monitoreo de rendimiento PerfExpertentonces deje una solicitud y nos pondremos en contacto con usted lo antes posible.