Buscar este blog

sábado, 20 de diciembre de 2014

Cambiar el Nombre de Una Base de Datos

Amigos,

     Me han preguntado por mail si es posible cambiar el nombre de una base de datos... La persona que me hizo llegar su correo se la notaba preocupada ya que había creado una base y luego había avanzado en el montado de estructuras, users, permisos etc.

     Luego de dos dias de trabajo, a este desarrollador de Guatemala, le llegó la orden de cambiar el nombre de la base puesto que el Project Leader así lo solicitaba.

     El intentó hacerlo pero fracasó, ya que no no siguió los siguientes pasos... .

     Se los dejo, es algo muy sencillo y efectivo...

         
 -- Se setea la base de datos en "Single User"
Alter Database A
Set Single_User with rollback immediate

-- Modifico el Nombre de la Base de Datos --
ALTER DATABASE A
Modify Name = B;
GO

-- Vuelvo la Base de Datos ya renombrada a Multi User --
Alter Database B
Set Multi_User
     

** Por último, sólo es posible cambiar el nombre de las BD de usuarios no de las BD del sistema.

Eso es todo amigos, saludos para todos.

miércoles, 10 de diciembre de 2014

Pregunta: Cómo identifico cual dts package está siendo llamado por el job?

PREGUNTA:


Bruno xxxx
 xxxxx@hotmail.com





Buenas tardes Gustavo.

Te saluda Bruno de Lima-Perú. Estuve buscando la solución a un problema que tengo en sql server y me encontré con tu blog, déjame felicitarte por el trabajo que realizas, he encontrado mucha información.

Te comento que no soy DBA, pero tengo nociones. Estoy realizando un inventario de todos los Jobs y dts de la base de datos sql server 2000.

Cuando estuve inventariando los dts me encontré con esta sorpresa.

He encontrado en la línea de ejecución lo sgte:


DTSRun /~Z0xAABAD4ECCF4B2A08AC5ACF14850EF2865FE933FCD50929A5FB0B21F1200CE14D2A492C5F73D719EAFBCA077C0AC0079B52FC5B1B26771622389205196AA5D334DF6F163A895DFB9F6B66507626FF70285419B49123265B8368DFB9F4777D5A2B4F00238BCB7D2B75A960DC14C00BFC1464C23A7F69114D48108EAD49F684055F26066F7E82A236ABF58F9202EC071FA8F60193

Aquí esta mi duda, no se como se llama el dts.
Que puedo hacer para saber el nombre del dts y de sus parámetros?
Espero me puedas ayudar.
Muchas gracias por todo y que sigas ayudando !!

Respuesta.

Estimado Bruno, muchas gracias por tus conceptos, sigue los siguientes pasos:

1) Copia la línea DTSRUN
2) Abre una ventana de Windows Command
3) Pega la línea DTSRUN dentro de la ventana
4) Al final de la línea agrega (textual) /!X/!C = copy results onto Windows Clipboard
5) Corre el comando
6) Abre el notepad
7) Cliquea "EDIT PASTE", esto va a pegar el comando actual dentro del Notepad
 y te mostrará a ti el nombre del Package.

Suerte y quedo a tu disposición

Gustavo Herrera.

Pregunta "En la empresa donde trabajo utilizan sql server standard edition y no tiene disponible la opción de particionar, que puedo hacer si tengo una tabla de 10 millones de registros?"



PREGUNTA

Alejandro xxxxxxx @yahoo.com




Cordial saludo
Buenos días , señor Gustavo
Mi nombre es Fabio Hernández , trabajo en el área de desarrollo .net y bases de datos sql server , vi un blog suyo muy interesante y habla del tema de particionamiento de tablas SQL SERVER PARA TODOS Gustavo Ricardo Herrera : PARTICIONAR TABLAS EN 5 PASOSEn la empresa donde trabajo utilizan sql server standard edition y no tiene disponible la opcion de particionar, que puedo hacer si tengo una tabla de 10 millones de registros , en donde hay información histórica desde el año 2000 hasta el 2014, normalmente la información consultada es del 2012-2014 , pero en la tabla esta todo el historico, como no puedo particionar por la version del sql server que otra opcion podria hacer
Muchas gracias .
Att
xxxxxxx


CONTESTACION

Que tal Alejandro, saludos desde BsAs.

Perdón por la demora en contestarte, estoy muy atareado por estos dias.

Lo que te ocurre a Ti le ocurre a mucha gente... Van mis consideraciones...

-  Se te ha abierto una oportunidad de solicitarles a los dueños de la compañía para la cual trabajas el upgrade hacia una versión más profesional de Sql Server.  Has pie en la ecuación costo/beneficio y trata pues de explicarles - en el lenguaje más sencillo posible - uno de los problemas a los que se enfrenta la compañía (perfromance pobre de sus bases de datos), por no tener la versión adecuada de Sql Server.

- Una tabla de 10 millones de registros es, a priori, una tabla que no tendría que particionarse, al menos por la cantidad de registro que refieres. Recuerda siempre que el mantenimiento de una partición es una tarea más a futuro...

- Entiendo que tu problema pasa por otro lado...., veamos...

   Pienso que deberías hacer pie en algunos de los siguientes items antes de pensar en particionar.

   -  Determinación de las queries que más tiempo tardan en resolverse (hay un script en mi blog para ello)

   -  Estudio de los planes de ejecución de dichas queries. Apuesto hacia falta de un indexado apropiado o de una lógica "pobre" en las queries a las que te hago referencia.
    
   Por otra parte, desconozco si dispones de, al menos 3 discos físicos para poder distribuir los archivos de datos, log e índices en distintos discos y aprovechar de ese modo la lecto escritura paralela del sql server.

   Una última solución puede ser, yo no te la aconsejo, el crear una base de datos por año y luego simplemente joinear las consultas.

   Entiendo que habiendo revisado los anteriores puntos (planes de ejecución, indexado y lógica de las queries),  encontrarás la solución, sin precisar hacer esto último. 

   Suerte y quedo atento ante cualquier inquietud.

    Saludos desde Buenos Aires, Gustavo Herrera.