jueves, 6 de diciembre de 2018

Instalar SQL Server en Linux

Pasos para instalar SQL Server 2019 en linux.

En mi caso los pasos de instalación propuesto en la página de Microsoft no funcionaron, pero agregando manualmente si se puede instalar.

Primero bajar el archivo

wget https://packages.microsoft.com/ubuntu/16.04/mssql-server-preview/pool/main/m/mssql-server/mssql-server_15.0.1100.94-1_amd64.deb

dpkg -i mssql-server_14.0.1.246-6_amd64.deb

Instalar las dependencias

sudo apt-get -f install


Nota: para instalar las versiones más nuevas se puede explorar la url https://packages.microsoft.com/ubuntu/16.04/ hasta localizar la versión más nueva.

Por ejemplo acá está la versión 2019.
https://packages.microsoft.com/ubuntu/16.04/mssql-server-2019/pool/main/m/mssql-server/


Para configurar el server 

sudo /opt/mssql/bin/mssql-conf setup


Para instalar el mssql-tools

wget https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/mssql-tools/

dpkg -i mssql-tools....

jueves, 12 de abril de 2018

Ubuntu 17.04 de versiones anteriores

Antes de pasar de Ubuntu LTS a Ubuntu 17.04 hemos de hacer unos cambios

Ubuntu tiene un gestor de actualizaciones que funciona bastante bien, pero sólo de una versión para otra o de versión LTS a versión normal. Es decir, si tenemos Ubuntu 16.10, seguramente ya nos habrá salido el mensaje de actualización, pero si tenemos otras versiones como Ubuntu LTS o Ubuntu 15.10, el sistema de actualización es un poco distinto.

Primero hemos de ir a Software y Actualizaciones. En esta ventana hemos a la pestaña “Actualizaciones” y en la parte inferior elegir la opción “Para cualquier versión nueva“. Esta opción revisará las nuevas versiones, no sólo las versiones LTS. Una vez que está cambiado, pulsamos el botón cerrar y nos vamos a la terminal.

Ahora en la terminal hemos de escribir lo siguiente:

sudo do-release-upgrade -d

Este comando de la terminal buscará las últimas versiones y nos la instalará. El proceso irá versión tras versión. Es decir, si tenemos Ubuntu 16.04 pasaremos a Ubuntu 16.10 y luego a Ubuntu 17.04. Si tenemos Ubuntu 15.10, primero pasaremos a Ubuntu 16.04, Ubuntu 16.10 y Ubuntu 17.04. Por lo que el pasado comando hemos de repetirlo varias veces.

martes, 13 de marzo de 2018

En ocasiones nuestro SQL Server consume demasiada CPU, un buen comienzo es localizar cuales son las consultas que más sobrecargan de media nuestro servidor.

Para ello, podemos utilizar el siguiente script que lista el top ten de las consultas que más cargan la CPU de nuestro servidor SQL.
 
 
SELECT TOP 10
qs.total_worker_time/qs.execution_count as [Avg CPU Time],
SUBSTRING(qt.text,qs.statement_start_offset/2,
(case when qs.statement_end_offset = -1
then len(convert(nvarchar(max), qt.text)) * 2
else qs.statement_end_offset end -qs.statement_start_offset)/2)
as query_text,
qt.dbid, dbname=db_name(qt.dbid),
qt.objectid
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY
[Avg CPU Time] DESC
 
 
Fuente: https://linube.com/blog/las-10-consultas-que-mas-cpu-consumen-en-sql-server/

jueves, 19 de octubre de 2017

Referencias cruzadas

Un ejemplo de como crear una referencia cruzada en sql server

drop table #datos

create table #datos (fila int, columna int, valor numeric(10,2))

insert into #datos (fila, columna, valor)values(1,1,10)

insert into #datos (fila, columna, valor)values(1,2,10)

insert into #datos (fila, columna, valor)values(2,3,10)

insert into #datos (fila, columna, valor)values(3,4,10)

DECLARE @columns varchar(MAX);
DECLARE @sql nvarchar(max)

SET @columns = STUFF( ( SELECT   ',' + QUOTENAME(columna) FROM (SELECT distinct columna FROM #datos ) AS T ORDER BY columna FOR XML PATH('') ), 1, 1, '');
print @columns

 SET @sql = N'
 SELECT
   *
  FROM
  (
  SELECT  fila, valor, columna
  FROM #datos
  ) AS T
  PIVOT 
  (
  sum(valor)
  FOR columna IN (' + @columns + N')
  ) AS P order by fila;';

EXEC sp_executesql @sql;


Si el resultado de la referencia cruzada quisieras utilizarlo combinado con otra tabla deberías inviarlo a una tabla temporal

drop table ##respuesta

 SET @sql = N'
 SELECT
   * into ##respuesta
  FROM
  (
  SELECT  fila, valor, columna
  FROM #datos
  ) AS T
  PIVOT 
  (
  sum(valor)
  FOR columna IN (' + @columns + N')
  ) AS P order by fila;
 ';

EXEC sp_executesql @sql;

select * from ##respuesta;


sábado, 17 de junio de 2017

Bibliografía - Y por AND

Al utilizar la bibliografía en Latex cuando hay varios autores escribe la palabra "and" en vez de "y" entre los autores.

Para que aparezca "y" en vez de "and", tenemos que editar el fichero ".bst"

Como este fichero es medianamente grande, lo podemos abrir con Wordpad o Notepad++ o el editor de texto que quieras. Creo que es demasiado grande para abrirlo con Notepad.

A continuación, buscamos el texto «" and "» y lo sustituimos por «" y "».  En este caso, solo está en dos sitios, en las funciones siguientes. (Aunque esto depende de cada archivo .bst)

martes, 13 de septiembre de 2016

Usuario Huérfano

Cuando se restaura una base de datos en un nuevo servidor los usuarios de la base son transferidos con ella, pero los inicios de sesión no.

Cuando se intenta crear el inicio de sesión y establecer el acceso a la base restaurada si el usuario ya existe da error.

Para solucionar esto y ligar el usuario de la base de datos con el inicio de sesión ejecutar:

ALTER USER usuariobase WITH Login = iniciosesion


Fuente: https://msdn.microsoft.com/es-AR/library/ms175475.aspx

viernes, 20 de mayo de 2016

Menú de Inicio de Windows 10 deja de andar

Después de un tiempo de usar windows 10 el menú dejó de andar.

Entrar a una consola en modo administrador, ejecutar el powershell

Escribir el siguiente comando.

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}