1. ¿Te parece interesante disponer en SQL Server de una tabla virtual de errores en las inserciones masivas?

    Pues a Microsoft parece ser que no, tal como responde en la propuesta de connect.com “new virtual table: errors. It would analogous to the deleted and inserted tables” (la negrita es cosecha propia): “ After carefully evaluating all of the bugs in our pipeline, we are closing bugs that we will not fix in the current or future versions of SQL Server. The reasons for closing this bug is because the scenario reported in the bug are not common enough ” Es decir, que el hecho de poder saber cuál(es) es(son) la(s) razón(es) por la(s) que, por ejemplo, un INSERT…SELECT ha fallado y poder decidir si rechazar la operación al completo (tal como sucede ahora, pero además sin conocer todos los posibles problemas) o aceptarla sabiendo que ciertas filas no han podido ser insertadas, no parece una mejora susceptible de ser incorporada (a pesar de que la competencia ya la...
  2. Lenguajes de programación de un DBA

    Es común pensar que si se trabaja como desarrollador, cuantos más lenguajes de programación se conozcan mucho mejor. Y de hecho no es extraño que si haces esta pregunta a un profesional de este tipo te responda con multitud de ellos: C#, VB.NET, Java, Javascript, HTML, ASP.NET, C++… Y la lista podría continuar hasta hacer insoportablemente largo este post. Sin embargo, desde el punto de vista de un DBA, parece más complicado pensar en que es necesario conocer algo más que SQL. Sin embargo, y aunque sólo el tener asimilados las particularidades de las implementaciones del SQL estándar en cada uno de los motores que se pueden usar (T-SQL en SQL Server, PL-SQL en Oracle, etc.) ya sería para nota, la lista de lenguajes de una persona que trabaja con la manipulación de los datos (no sólo desde el punto de vista de un administrador de base de datos tradicional...
  3. Balancear memoria entre instancias de SQL Server

    Dentro de la lista de ideas pendientes de implementar que tiene uno siempre en la cabeza en forma de post-it, había una que estaba de las primeras y que consistía en establecer la memoria correctamente en un entorno donde convivan varias instancias de SQL Server clusterizadas. Es decir, es muy común tener un entorno de dos (o más, pero por simplificar el escenario) máquinas físicas clusterizadas y sobre ellas instalar dos instancias clusterizadas (nuevamente, simplificando), alternando el nodo principal para optimizar recursos. Es decir, algo como muestra este dibujo:   En este escenario se puede tomar varios caminos respecto a la configuración de la memoria máxima de las instancias de SQL Server: Dejarla tal cual como viene de origen (mala práctica se mire como se mire) Poner un valor máximo como si sólo existiera una instancia instalada (no recomendable cuando las dos instancias pasan a ser ejecutadas en una sola...
  4. SQL Server: bug con MERGE y vistas indexadas

    Microsoft acaba de publicar un fix para resolver un problema relacionado con la devolución de datos incorrectos en las vistas indexadas cuando estos han sido actualizados a través de una operación MERGE. Aunque la información oficial la podemos leer del correspondiente artículo de la KB, en el blog de Paul White (altamente recomendable, por otra parte) tenemos mucha más información, incluyendo un script donde podemos reproducir el problema: “Incorrect results with indexed views” Creo que es un problema lo suficientemente importante para recomendar la instalación de este CU en nuestras instancias de SQL Server.
  5. Cómo asignar los permisos correctos en nuestra base de datos a posteriori

    No es extraño encontrarnos con el escenario de tener una base de datos en la que los usuarios de la misma tienen todos los permisos posibles sobre todos los objetos. El cómo se ha llegado a esta situación puede deberse a diferentes causas: La base de datos era pequeña al principio y era correcto que el usuario pudiera acceder a todo, pero ahora esto ya no es así Se dejó a la aplicación la responsabilidad de asegurar el acceso, pero luego aparecieron más aplicaciones que acceden a la misma base de datos con el mismo usuario Desconocimiento/dejadez para asignar los permisos correctos a nivel de base de datos Etc. Sea cual sea la causa inicial, el caso es que nos han pedido que asignemos los permisos justos (ni más, ni menos) que tienen que tener los usuarios de la base de datos para que no haya problemas de seguridad (al...
  6. Herramientas gratuitas en base de datos: SSMSBoost

    Para compensar la mala noticia (por dejar de ser gratuito, no porque desaparezca) que os di hace poco aquí, quería comentar algo que he descubierto hace poco tiempo y que podríamos considerarlo como el hermano pequeño de SSMSToolsPack: SSMSBoost Digo lo de “hermano pequeño” porque contiene menos funcionalidades. Algunas de ellas son similares (formateo de código, snippets, identificación de la conexión mediante colores) y otras se echan de menos (generación de INSERTS, histórico de instrucciones) pero en cambio tenemos algunas cosas que pueden resultar muy prácticas, entre las que destacaría: Sincronizar la base de datos de la conexión actual en el explorador de objetos. Tenemos la opción de hacerlo de forma manual o automática Localizar un objeto en el explorador de objetos directamente desde el editor de consultas Poder obtener el script de un objeto simplemente seleccionándolo en el editor de consultas Además de la identificación del servidor actualmente conectado...
  7. Utilidad tablediff y Azure

    Es habitual, que en los procesos de migración de una aplicación a Azure, tengamos que migrar la base de datos de un SQL Server On-Premise a un SQL Server Azure. A veces, es necesario generar un script SQL de diferencias de datos entre una tabla desplegada en Azure y la misma tabla desplegada On-Premise. Este script SQL nos servirá para igualar los datos de las tablas en los dos despliegues. Para ello, podemos utilizar la herramienta de linea de comandos tablediff, que viene incluida en la instalación de SQL Server, a partir de la versión 2005. Tablediff, es una utilidad que entre otras cosas puede comparar dos tablas con el mismo esquema y generar un fichero con el script SQL de diferencia de datos. Este script contiene sentencias INSERT, UPDATE y DELETE. A parte la utilidad se puede utilizar para otros fines, como la comparación de los esquemas entre dos...
  8. Generar un bacpac en Azure desde código

    Hace unos días, buscando en Internet, encontré que Microsoft dispone de un servicio de generación de ficheros bacpac en Azure público pero no documentado. A este servicio, se le indica la base de datos de Azure, de la cual se quiere generar el fichero bacpac y la cuenta de almacenamiento de Azure donde se quiere guardar, y el servicio genera el fichero bacpac. El fichero de bacpac sirve de backup de base de datos, puesto que a partir de él, podemos restaurar la base de datos original en Azure. También nos sirve para migrar datos de Azure a On-Premise utilizando el wizard de la herramienta SQL Management Studio 2012, el cual nos permite restaurar la base de datos a partir del fichero bacpac. Ahora vamos a ver como utilizar este servicio desde código C#. Lo primero es añadir en nuestro proyecto una referencia al servicio (https://am1prod-dacsvc.azure.com/DACWebService.svc/mex). Esto nos crea las clases ConnectionInfo, BlobStorageAccessKeyCredentials y...
  9. Malas noticias: SSMSToolsPack de pago para SQL 2012

    Acabo de leer en el blog de Mladen Prajdic, el autor de uno de los mejores (si no el mejor) add-in para SQL Server Management Studio, SSMSTooslPack, que la nueva versión del producto que daba soporte para SQL Server 2012 pasa a tener ahora licencia comercial de pago. Y aunque los precios no son excesivamente caros y las razones del cambio son perfectamente comprensibles, no deja de ser un inconveniente tener que pagar ahora por ello (más en estos tiempos que corren) La noticia menos mala de todo esto es que para las versiones anteriores a SQL 2012, el add-in sigue siendo gratuito.
  10. Guías técnicas de referencia

    No sé desde cuándo existe esta página, pero esta mañana me he encontrado con lo que Microsoft denomina “Technical Reference Guides for Designing Mission-Critical Solutions”, una guía de planificación y de diseño de arquitecturas de misión crítica. En realidad lo que han hecho ha sido reunir en un único sitio todos aquellos artículos (whitepapers, buenas prácticas, referencias de clientes, etc.) que nos sirven para diseñar adecuadamente nuestro entorno. Esto no sería muy destacable, ya que existen otras páginas que nos permiten acceder a la formación relacionada con SQL Server (como por ejemplo esta: http://www.microsoft.com/sqlserver/en/us/learning-center/resources.aspx). Lo que me ha llamado la atención (además de la temática, claro) de este sitio es la organización de la información. La siguiente imagen explica lo que quiero decir mucho mejor:   Cada bloque es un vínculo a una página con artículos relacionados con el tema en cuestión. Y tenemos bloques principales para arquitecturas OLTP, Datawarehouse...

Selecciona tu idioma

Ver todos Español English

¿Qué es esto?

El blog donde mostramos nuestro trabajo, experiencias y casos de éxito, además de otras curiosidades de nuestra comunidad