42 votos

¿Es seguro tener SQL Server reducción automática de encendido?

Hay muchos SQL Server opciones que se pueden habilitar para bases de datos, y uno de los más incomprendidos es el de la auto-retráctil. ¿Es seguro? Si no, ¿por qué no?

65voto

Bernie Perez Puntos5091

(Me pidió originalmente como una pregunta, pero luego descubrí el método correcto - gracias BrentO)

No, nunca.

Me he encontrado con esto varias veces, ahora en ServerFault y queremos llegar a una amplia audiencia con algunos buenos consejos. Si las personas están en contra de esta manera de hacer las cosas, downvote y me voy a quitar esto de buena gana.

Reducción automática es muy común en la configuración de base de datos han permitido. Me parece una buena idea - quitar el espacio adicional de la base de datos. Hay un montón de 'involuntarios de los Administradores de bases de datos de" ahí fuera (creo TFS, SharePoint, BizTalk, o simplemente regular el viejo SQL Server) que no puede saber que auto-retráctil está positivamente el mal.

Mientras que en Microsoft me utilizarse para el Almacenamiento de SQL Server Motor y trató de quitar la reducción automática característica, pero tuvo que quedarse para la compatibilidad hacia atrás.

¿Por qué es auto-retráctil tan mal?

La base de datos es probable que sólo a crecer de nuevo, así que ¿por qué reducirlo?

  1. Shrink-crecer-shrink-crecer causas nivel de sistema de archivos de la fragmentación y tiene un montón de recursos.
  2. Usted no puede controlar cuando se inicia en (a pesar de que es regular-ish)
  3. Utiliza gran cantidad de recursos. Mover páginas en la base de datos se hace de la CPU, un montón de IO, y genera un montón de registro de transacciones.
  4. Aquí está el verdadero trampolín: reducción de archivos de datos (ya sea automática o no) provoca enormes índice de fragmentación, lo que conduce a un rendimiento deficiente.

Hice un post en el blog hace un tiempo que tiene un ejemplo de secuencia de comandos SQL que muestra los problemas que causa y explica en detalle un poco más. Ver Auto-retráctil – DESACTIVAR! (no publicidad o basura, como que en mi blog). No consigue este confundido con reducir el archivo de registro, lo que es útil y necesario en ocasiones.

Para hacer vosotros mismos un favor - buscar en su base de datos de configuración y desactivar la auto-retráctil. Usted también no debe haber pérdidas en sus planes de mantenimiento, por exactamente la misma razón. Difundir la palabra a sus compañeros.

Edit: debo añadir esto, recuerda que la segunda respuesta - hay una idea errónea de que la interrupción de una operación de reducción puede causar la corrupción. No no. Yo era dueño de la reducción de código en SQL Server - revierte la página actual movimiento que se está haciendo en caso de interrupción.

Espero que esto ayude!

3voto

Sean Kearon Puntos2670

Por supuesto que Pablo está a la derecha.

Ver todos los dbs y su configuración de reducción automática. Si usted tiene un montón de bases de datos, uno se disfrace.

sp_msforeachdb @command1 = "Seleccione" [?]",DATABASEPROPERTYEX("?","IsAutoShrink")'

Es este en el dmv en algún lugar....Me pregunto.

2voto

David Spillett Puntos18934

No es "inseguro" - no va a dañar nada.

Pero no es recomendable para entornos de producción donde la base de datos puede decidir ir e iniciar un costoso reordenamiento del ejercicio justo antes de que un montón de solicitudes en la fabricación de los pedidos tardan más en ser servido. Usted es mucho mejor el uso de la programación de las operaciones de reducción, junto con otras operaciones de mantenimiento, tales como copias de seguridad (en realidad, después de copias de seguridad - que va a más desde el registro de transacciones de esa manera). O simplemente no se reduce en absoluto a menos que haya un problema de crecimiento, siempre se puede configurar un monitor para hacerle saber cuando se utilicen espacio asignado crece más allá de una cierta proporción o tamaño fijo.

CREO que la opción está desactivada por defecto para todas las bases de datos en todos los MSSQL las ediciones excepto Express.

1voto

Fortepianissimo Puntos1066

He visto a un servidor SQL server con tanto crecimiento Automático y reducción automática habilitada. Este (relativamente potente) servidor era terriblemente lento, porque todo lo que hizo todo el día fue reducir y crecimiento de los archivos de base de datos. La reducción automática puede ser útil, pero me gustaría recomendar dos cosas:

  1. Gire a la reducción automática desactivada por defecto.
  2. Documento de su servidor configuraciones, para que usted sepa donde el crecimiento Automático y reducción automática está habilitada y donde no.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

;