Entradas

Mostrando las entradas etiquetadas como microsoft

SQL Server, columnas calculadas

Aquí os dejo algunos apuntes básicos sobre las columnas calculadas en SQL Server. ¿Cuando se calculan? Depende de cómo defina la columna calculada. Una columna calculada PERSISTIDA se calculará y luego se almacenará como datos dentro de la tabla al ser creada. Si no define la columna como PERSISTIDA, se calculará cada vez que se ejecute una consulta que la incluya. Mas info aquí . Tablas temporales o versionadas La modificación del esquema de una tabla versionada por el sistema (tablas temporales) falla porque no se admite agregar una columna calculada mientras el versionado del sistema está activado. Para solucionarlo: Primero desactivar el versionado Luego agregar la columna calculada a la tabla base Verificar el tipo de la columna calculada resultante Agregar la columna con el tipo estático apropiado a la tabla de historial (tabla temporal o tabla versionada) Volver a activar el versionado Otra cosa a tener en cuenta es que una columna calculada que utiliza una...

SQL Server schemabinding

Este post es una traducción al castellano de este otro . Cuando se utiliza la palabra clave SchemaBinding al crear una vista o función, lo que hace es vincular la estructura a las tablas o vistas subyacentes. ¿Qué significa? Significa que mientras un objeto exista como un objeto vinculado, está limitado en los cambios que se pueden realizar sobre él por las tablas o vistas que lo referencian. Si una tabla es referenciada por una función o vista vinculada, solo las columnas a las que hace referencia la función o la vista no se pueden modificar , el resto si. Cuando tienes objetos vinculados en una base de datos: No puedes cambiar la intercalación (collation) de la base de datos.  No puedes usar SELECT * en las vistas vinculadas.  No puedes ejecutar sp_refreshview en las vistas vinculadas.  Puedes realizar cualquier cambio en la tabla origen que no afecte la estructura de las columnas enlazadas. Puedes averiguar si un objeto está vinculado al esquema mirando ...

Recomendaciones para SQL Server con Dynamics NAV

Max Server Memory MAX_SERVER_MEMORY = TOTAL_SERVER_MEMORY - [OS/Apps Memory] - [Threads * Thread Size] TOTAL_SERVER_MEMORY = 24GB OS/Apps Memory = 4 GB (systems with > 16GB of RAM) Threads = 576 Thread Size = 2MB (x64) Recomendado MAX_SERVER_MEMORY = 18 GB Auto - Create Statistics Se recomienda fuertemente activar "Auto Create Statistics" ya que es una de las formas que utiliza el propio SQL Server para mejorar el rendimiento. El coste para ejecutar esta opción es mínimo en comparación con el problema de rendimiento que puede experimentar si una estadística necesaria falta y SQL Server no la puede crear. Las estadísticas son un factor muy importante en el plan de consultas eficientes que viene con SQL Server. Auto - Update Statistics Se recomienda fuertemente activar "Auto Update Statistics" ya que es una de las formas que utiliza el propio SQL Server para mejorar el rendimiento. El coste para ejecutar esta opción es mínimo en comparación ...

Trabajando con la Surface Pro 4 y accesorios

Imagen
Es mi primera entrada en dónde hablo directamente de hardware y me he animado a hacerla por los sentimientos encontrados que he sentido al probar diferentes productos de la gama Surface, en concreto la Surface Pro 4 i7 16 GB 512 SSD, Arc Touch Mouse y el dock . La Surface es genial, dudaba mucho de su rendimiento pero su procesador i7-6650U de 2 núcleos no tiene nada que envidiarle a un  i7-5930K de 6. El comportamiento es excepcional, increíble pensar que en una 'tablet' puedas tener Hyper-V activado con docker y correr un servidor SQL Server sin mayor problema. La única alteración al rendimiento ha sido habilitar mediante PowerShell el modo de energía de alto rendimiento, lo cual dispara el uso del ventilador, muy silencioso, nada comparable con mi anterior sistema de refrigeración líquida Corsair Cooling Hydro Series H110i GT que hace un ruido infernal, sobre todo en verano. La única pega que tiene son los drivers, hay que estar actualizados a la última ve...

Instalación offline de Office 365

Imagen
Si tienes una licencia válida para Office 365 ProPlus pero por algún motivo te es imposible descargar desde tu cuenta de Microsoft el instalador entonces este post te puede servir de ayuda. Es muy importante decir que tienes que tener una licencia válida, este artículo no habla de instalaciones ilegales aunque se utilicen algunas herramientas no oficiales, siempre debes instalar software legal. Este post va dirigido a todos aquellos que tienen una licencia legal de Office 365 ProPlus pero que no tienen acceso al instalador. Click-to-Run es la tecnología utilizada para instalar la suscripción de Office 365 y la mayoría de los otros productos Office 2013 y Office 2016. La tecnología Windows Installer (MSI) se utiliza para instalar las ediciones de licencia de volumen de Office, como Microsoft Office Professional Plus y Microsoft Office Standard. Si necesitas más información acerca de las diferencias entre las versiones de Office te aconsejo esté artículo sobre el s...

El mejor IDE para PHP

Imagen
Voy a comenzar diciendo que no existe un IDE perfecto, los hay mejores y peores, ninguno perfecto. El mejor IDE es el que mejor se adapte a tu proyecto, a veces es necesario utilizar uno para un proyecto antiguo que vamos a refactorizar y otro para un proyecto que comenzamos de cero. En este blog voy a hablar de las características que creo que deberíamos de considerar a la hora de elegir nuestro entorno de desarrollo integrado (IDE), siempre enfocados a PHP. Consumo de recursos Raro es un entorno que consuma demasiada CPU pero en cuanto a RAM son bastante golosos, sobre todo los basados en Java, en la siguiente tabla veréis el consumo medio de RAM para alguno de estos IDEs. IDE RAM Zend Studio 13.5.1 905 MB NetBeans 8.2 830 MB PHP Tools Visual Studio 2017 320 MB Visual Studio Code 1.11 30 MB Servicios Un buen entorno no solo debe presentar las herramientas necesarias para refactorizar, comprobar y rastrear errores, intellisense, sino permitir la inte...

Drivers ODBC 13 y PHP de Microsoft para SQL Server en CentOS 7

Imagen
Microsoft es más Open Source que nunca , ¡y que lo digan! Han cambiado mucho los tiempos en que sólo se podían utilizar las herramientas de Microsoft en Windows, y han cambiado para bien. Una de las limitaciones existentes era utilizar su driver de conexión al SQL Server para PHP en entornos linux, felizmente esa limitación está llegando a su fin gracias a las versiones para linux del Microsoft ODBC Driver 13 (preview) y Microsoft Drivers para PHP (early technical preview). También en la evolución de estas herramientas hay un cambio radical, de instalaciones totalmente artesanales al principio ya hemos llegado al punto en que el primero está disponible con yum y el segundo es compatible con repositorios existentes como los de remi . Voy a comenzar asumiendo que ya tienes instalado PHP 7 (importante, la versión 7 es la única soportada) en tu servidor con CentOS 7, si no sabes cómo, lo puedes ver en el post donde instalo las últimas versiones de nginx y php . Instala...

CentOS 7 en Hyper-V segunda generación

Imagen
No es raro que cuando intentes instalar CentOS 7 en Hyper-V si has escogido la generación 2 te salga el siguiente mensaje de error:  the image hash and certificate are not allowed . Lo primero que te da por pensar es que no está soportado, pero error, si lo está y aquí podéis consultar la lista completa de sistemas operativos soportados en la generación 2 de maquinas virtuales para Hyper-V. Entonces, si está soportado ¿que pasa? La pista me la dio el siguiente post , pero como siempre ocurre, es un post antiguo y esta un poco obsoleto y mal. Lo que ocurre es que entre las ventajas de la segunda generación está el arranque seguro, y más que deshabilitarlo, como recomiendan en el post anterior, lo que tenemos que hacer es cambiar la plantilla que viene por defecto y debemos elegir  Microsoft UEFI Certificate Authority . Y con estos sencillos pasos ya tendremos instalado un CentOS 7, que podremos descargar la iso desde aquí, en nuestro Hyper-V con una máquina vi...

Migrar una web con PHP de Windows a Linux

Imagen
Si bien es cierto que el código PHP es el mismo para un servidor Windows como para uno Linux, a la hora de migrar hay que tener algunas cosas en consideración. Si bien la migración de un servidor Linux hacia uno con Windows es más transparente, la contraria lleva algunas tareas especiales. Lo más importante son las rutas include, mientras Windows soporta tanto include_once 'clases/db.php'; como include_once 'clases\db.php', en Linux sólo se soporta la barra \. Este sería el cambio más importante a tener en cuenta. Luego tenemos que ver si nuestro código tiene extensiones específicas de Windows , si son críticas y no encontramos alternativas, impedirían la migración. Un último punto a tener en cuenta son las llamadas a funciones de la línea de comandos con exec por ejemplo. Seguramente los comandos ejecutados no sean los mismos y las respuestas sean totalmente diferentes.

Azure SQL Database DTU Calculator en español

Imagen
Si has llegado a esta entrada es porque tienes una base de datos SQL Server que quieres (o piensas) migrar a Azure SQL Database y deseas saber cuales de los planes tendrías que elegir para ello, y sobre todo, cuanto tendrías que invertir. Si es así estas en el sitio correcto. Azure dispone de 3 planes de alojamiento: Azure SQL Database, Elastic Database y Azure SQL Data Warehouse ; en esta entrada me centraré en los dos primeros.  Cuando migras a la nube de Microsoft desde tu plataforma local (on premise) debes olvidarte de cores y RAM, lo importante son las unidades de rendimiento de base de datos o en sus siglas en inglés DTU, una equivalencia aproximada sería: 1 DTU = 1 transacción por segundo. ¿Cómo calcular cuántas DTU necesita mi base de datos?  Muy sencillo, existe una herramienta para ello llamada  Azure SQL Database DTU Calculator  donde te descargas un script PowerShell que monitorizará durante una hora tu consumo de CPU, las lecturas ...

Servidores web para Windows

Imagen
Llevo ya muchos años trabajando con servidores web, de ellos bastante tiempo sobre Windows y es bastante complicado. Llegar a una configuración óptima en Windows solo puede ser con prueba y error, no hay una receta mágica que te lo permita, pero no por ello son malos servidores, en mi opinión creo que se han dejado de lado. Windows representa sólo el 32,2 % en los sistemas operativos que mantienen servidores web. ¿Por qué tan poca cuota? Para montar un servidor web bajo Windows sólo existen 2 excusas potentes: Trabajas con ASP Tu base de datos está en Microsoft SQL Server Para el punto 1 no hay alternativa posible, ASP necesita IIS y por ello Windows. Por el contrario el punto 2 es más susceptible a cambio (y más ahora con los nuevos desarrollos en los que la propia Microsoft está involucrada como el driver ODBC y la adaptación a Linux del propio SQL Server ). Para trabajar con SQL Server no es necesario ASP, puedes acceder desde PHP con ODBC, eso si...

PHP con Visual Studio Code

Imagen
El pasado 14 de abril Microsoft anunciaba la primera versión de Visual Studio Code , una versión simplificada (muy simplificada) de Visual Studio, orientada a la edición de código. Entre los lenguajes de programación soportados por defecto está PHP y aunque aún le queda mucho camino por delante es un IDE que debemos tener en cuenta. Sorprende la interfaz tan limpia que tiene, muy de mi agrado personal, y si bien es cierto que parece escasa de opciones dispone de bastantes funcionalidades en los pocos botones que tiene. Para trabajar con PHP no hace falta hacer nada, dispone de Intellisense de las funciones innatas de PHP no así de las clases propias de nuestro código, sin duda su mayor limitación, aunque existe un proyecto para intentar suplir esta carencia pero a mi en particular no me ha funcionado . En la parte inferior izquierda tienes varios iconos, el primero te da la opción de gestionar las extensiones, cuando abres una carpeta con archivos PHP tienes una opción i...

Restaurando archivos ibd en tablas InnoDB

Imagen
Este post es una recopilación de la información más actual para para restaurar una base de datos MySQL a partir de los archivos de datos en entornos Windows. La versión de MySQL es la 5.7.11. ¿Por qué restaurar? En mi caso al cambiar de ordenador se me olvidó hacer una copia reciente de la base de datos con lo cual al instalarlo todo en el nuevo habría perdido un mes entero de trabajo, por fortuna disponía del disco duro anterior. ¿Qué necesitamos para restaurar la base de datos MySQL? Necesitamos un backup de la estructura de la base de datos (actualizada) o un backup completo en el que la estructura sea la correcta (si el backup es actual no necesitaríamos restaurar los datos desde los archivos, el problema es que la que tenía era un mes antigua). Lo siguiente son los archivos de datos, que en Windows se encuentran en la siguiente ruta: C:\ProgramData\MySQL\MySQL Server 5.7\Data\dbname. La carpeta ProgramData está oculta. En esta ubicación encontraremos va...

Alta disponibilidad con un espejo en SQL Server

SQL Server tiene varias formas para que dispongamos de alta disponibilidad en nuestras bases de datos, en este post veremos una de ellas: la creación de un espejo. Para mi la creación de un espejo vs un clúster es una preferencia personal, creo que un clúster es más complejo de mantener y gestionar, es más caro porque ambas máquinas comparten el almacenamiento y por lo menos mi experiencia con SQL Server 2008 R2 no fue muy buena y sin un soporte premiun por parte de Microsoft los fallos son difícilmente corregibles. En cambio un mirror o espejo es sencillo de configurar y pueden ser dos máquinas totalmente independientes. ¿Por qué crear un espejo en SQL Server? Porque este método permite hacer una réplica exacta de una base de datos de un servidor a otro. La gran ventaja de este método es que permite el failover automático sin intervención humana (siempre que se instale un tercer servidor witness). La desventaja del mirror es que sólo podemos tener una máquina secundaria o mirro...

El driver de SQL Server para PHP 7

Para los que utilizan SQL Server con PHP y quieran actualizar a PHP 7 por ahora no será posible, no habrá soporte oficial de Microsoft SQL Server para PHP 7 hasta enero, en una versión previa. Más información en su página de github . Por ahora la única forma de conectar con SQL Server desde PHP 7 es utilizando ODBC porque el antiguo driver mssql también ha desaparecido desde PHP 5.3, lo cual es totalmente normal teniendo soporte oficial de Microsoft. Toca esperar.

Error 503 Collabnet Subversion Edge

Si tienes instalado Collabnet Subversion Edge y por algún motivo al acceder a http://localhost:3343/csvn recibes el siguiente error: HTTP ERROR: 503 Problem accessing /csvn/. Reason: Service Unavailable Powered by Jetty:// Entonces este artículo es para ti, este post es una versión actualizada de esta url y es compatible con Collabnet Subversion Edge 5 (en este momento la actual es la 5.0.1). Los pasos son los siguientes (seguirlos uno a uno porque no vale de nada reinstalar) Lo primero que debemos hacer es crear un backup de los repositorios c:\csvn\data\repositories y los archivos de configuración que se encuentran en c:\csvn\data\conf: svn_auth_file (usuarios y passwords) y svn_access_file (accesos). Si reinstalas el Collabnet este ultimo archivo es el único que se sobrescribe por eso es necesario crear el backup, aunque como bien dije antes reinstalar no vale de nada. Desinstalar Collabnet Subversion Edge (CSE) y reiniciar. Seguirán quedando archivos en la carpeta c:\c...