miércoles, 24 de octubre de 2007

Script Split Base de datos

Hoy voy a publicar una función que utilizo para realizar split en SQL Server 2000 recomendables para realizar búsquedas de cadenas, nombres, entre otras.

CREATE FUNCTION Split(@String varchar(150), @Delimiter char(1))
RETURNS varchar(200)
AS
BEGIN
DECLARE @INDEX INT
DECLARE @Results varchar(200)
DECLARE @SLICE varchar(200)
-- Asignar 1 a la variable que utilizaremos en el loop para no iniciar en 0.
SELECT @INDEX = 1
-- Asignar Results = '' para no devolver null y prevenir errores.
SET @Results = ''
IF @String IS NULL RETURN @Results

WHILE @INDEX !=0
BEGIN
-- Obtenemos el índice de la primera ocurrencia del split de caracteres.
SELECT @INDEX = CHARINDEX(@Delimiter,@STRING)
-- Ahora ponemos todo a la izquierda de el slice de la variable.
IF @INDEX != 0
SELECT @SLICE = LEFT(@STRING,@INDEX - 1) + '%'
ELSE
SELECT @SLICE = @STRING

SET @Results = @Results + @SLICE
SELECT @STRING = RIGHT(@STRING,LEN(@STRING) - @INDEX)
-- Salimos del loop si terminamos la búsqueda
IF LEN(@STRING) = 0 BREAK
END

RETURN @Results --Retornamos el resultado de la misma
END

Novedades Oracle 10g

Como les había prometido con anterioridad les voy a hablar sobre Oracle 10g, una versión gratuita de los mejores motores de base de datos que tenemos en el mercado, ya Oracle lanzó la versión 11g que es la última, pero difiere muy poco de las que le voy a tratar el día de hoy. Oracle lanza una versión Grid, que disminuye los costes en cluster nombrada "g" y una versión orientada a Internet a las que nombran "i".

A diferencias de versiones anteriores, a partir de la 10 oracle viene con un herramienta de administración web para ser accesada mediante un navegador, sin tener que instalar una aplicación de escritorio para ejecutar la misma. solo tenemos que poner el nombre del equipo donde instalemos la base de datos o la IP de la misma. De esta forma tendremos acceso al Oracle Enterprice Manager 10g.
Solo debemos introducir nuestras credenciales y pulsar conectar.


El administrador de Oracle te muestra una pantalla inicial donde podemos visualizar el performance del equipo, como es el CPU, el estado de la BD, las secciones activas en el servidor, nombre de la instancia que está ejecutandose, el host, resumen del espacio de la BD, entre otras estadísticas de nuestros servidor. Esto es una gran ventaja sobre el MSSQL Server que debemos ejecutar una herramienta adicional para obtener estos datos.


En rendimiento o Performance nos muestra el rendimiento de nuestro servidor.
En la pestaña administración podemos configurar nuestra base de datos, ver el almacenamiento de nuestras bd, el espacio que ocupan nuestras tablas, nuestro log de base de datos, definir nuestra política de seguridad, tipo de acceso de usuarios, sus roles, entre otras.
En las opciones de archivos podemos crear los archivos de las las tablas que deseamos crear. Oracle Database 10g creará los siguientes archivos de datos por defecto: excample01.dbf, sysaux01.dbf, system01.dbf, temp01.dbf, undotb.dbf, users01.dbf. Podemos cambiar el tamaño del archivo de datos o asignarlo a que se asigne automaticamente con la opción de autoextend.

La opción para realizar los querys o consultas es el ISQL*Plus desde donde podremos realizar consultas de nuestras tablas de las base de datos que tenemos en el servidor de Oracle 10g. Para mí Oracle es una opción muy estable, confiable, pero consume muchos recursos de hardware y el sistema de indexación no es tan buena como la de SQLServer o MySQL, en una siguiente entrega les traeré una comparación con estos motores de base de datos donde voy a dejar cuales son los pros y contra de cada uno de ellos.

viernes, 19 de octubre de 2007

Monitoreo de SQL Server 2000

Saludos, hoy les voy a mostrar como utilizar dos herramientas que trae Microsoft SQL Server 2000 para monitorear los procesos y ejecuciones que se realizan en nuestro servidor. Estas herramientas son el Profiler y el performance monitor. Las mismas no solo nos permiten ver los procesos que se ejecutan en nuestro servidor, también nos ayudan a ver como está el rendimiento del mismo, como son el uso de los discos, la memoria y cpu que está utilizando nuestro motor de base de datos.

En muchas ocaciones los programadores tenemos que depurar herramientas que se han quedado colgada con nuestra base de datos y simplemente nos dirigimos al código, cuando con el SQL Profiler le podemos dar seguimiento a los querys que se están ejecutando. De esta forma nos evitamos tocar nuestro código de programación, cuando simplemente podemos solucionar cualquier problema solo modificando nuestros procedures o simplemente eliminando procesos que nos están bloqueando otros procesos que estamos ejecutando.

El Profiler nos permite crear trace para darle seguimiento a las ejecuciones y consultas que se realizan en un determinado servidor de base de datos. Podemos accesar a el por Start > Program Files > Microsoft SQL Server > Profiler.
Podemos filtrar nuestros traces especificandole el nombre de la aplicación que deseamos darle seguimiento, como un determinado proceso, base de datos o que se puede excluir de nuestro seguimiento.
Podemos además mostrar que columnas queremos ver en nuestro seguimiento y si el mismo lo deseamos exportar a algún archivo o almacenar en una tabla de base de datos.
Aquí podemos ver un ejemplo de unas ejecuciones que estaban ocurriendo en un servidor y le damos seguimiento a los que estamos ejecutando en nuestro trace.
La otra herramienta con que cuenta SQL Server 2000 es el performance monitor con el que podemos visualizar como se están comportando nuestros discos duros, como la base de datos está utilizando la memoria y el procesador de nuestro servidor, picos muy altos en los discos no es positivo para nuestro servidor, los cuales deberían mantenerse por debajo de un 20% y solo la memoria y el cpu puede tener ligeros picos esporádicamente.
Bueno espero que esta información les ayude para administrar mejor su servidor de sql, en la próxima semana les voy a traer información sobre Oracle 10g que cuenta con una de las mejores herramientas de administración de base de datos.

sábado, 13 de octubre de 2007

Herramientas Desarrollo de Java - NeatBeans

En mis años dedicado al desarrollo de sistema he tenido que trabajar con varios lenguajes de desarrollo, como son delphi 6 y 7, Java, PHP 4, VB 6, ASP 3.0, luego pasé con .Net (VB y C#) y la verdad que para mi particularmente no hay un lenguaje mejor que otro, lo más importante es el IDE de desarrollo que utilizemos. Uno de los mejores IDE de desarrollo es el Microsoft Visual Studio 2005, por algo es uno de los paquetes de desarrollo más importante en el mercado (sino el que más). Los IDE de Borland para lenguajes como Delphi y C son muy buenos, el antiguo IDE de Visual Studio 6 de Microsoft, pero esta vez vamos a analizar los IDE del lenguaje Java que no tienen nada que envidiarle a los antes mencionados.

Para Java existen varios IDE importantes, dependiendo del que te hagas sentir más como: Eclipse, Netbeans, BlueJ, el Sun Studio. Los desarrolladores JSP se inclinan más por el Eclipse y el Sun Studio, pero aquellos programadores que provienen de desarrollar bajo visual studio o alguna herramienta de borland, se sentiran muy comodos con el Netbeans 5, con el que podemos crear Web Sites bajo JSP, Servlet, web services y enterprices applications, entre otras. además realiza un buen manejo de la memoria, una gran mejora distinto al netbeans 4.1 que fue el que utilizé con anterioridad.

Posee una gran librería gráfica en nuestra caja herramienta con la que podemos añadir cualquier componente con solo un Drag and Drop, trae varios componentes para trabajar o manipular data desde base de datos, o XML, SOAP, entre otros.

Si es programador bajo ambiente Windows, Netbeans es una muy buena opción a la hora de comenzar a programar y lo mejor de todo es una herramienta completamente gratis, viene incluída con el JDK 6.0 o puede descargarlo de forma individual.

viernes, 12 de octubre de 2007

Administración MySQL Server

Saludos, en esta entrada le voy a mostrar una herramienta de administración de MySql Server 5.0 provista por las mismas personas de MySql que es el MySQL Administrator, para los que tenemos un tiempo trabajando con MySQL esto nos parecerá genial, y para aquellos que desean migrar a Mysql esto le ayudará. Ya no tenemos que utilizar el mysqladmin que es una herramienta tan tediosa.

Esta herramienta permite administrar los usuarios, nuestras conexiones, los catalogos (Base de datos), reporte de consumo de memoria, realizar backups (incluyendo guardar su schedule, tipo de backup), restaurar base de datos.

En esta pantalla les muestros como configurar las conexiones por defecto que nos van a salir en el Mysql administrator cuando los iniciamos, seleccionamos el botón nueva conexión y seteamos nuestra conexión seleccionando el usuario deseado.


Luego que creamos nuestra conexión, el siguiente paso es guardar la conexión y presionar el botón save connection.
Luego en la ventana de login seleccionamos la conexión previamente creada del combo box y colocamos nuestra contraseña y pulsamos ok.
cuando abrimos, nos sale la ventana de resumen por defecto.
En esta pestaña podemos ver el estatus del servicio de mysql para visualizar si está corriendo o parado, o configurarlo para seleccionar la ruta donde se encuentra el servicio.
En esta opción podemos administrar los usuarios y los permisos de los mismos, en la primera pestaña creamos el usuario y le asignamos su privilegio.
En la siguiente pestaña asignamos los privilegios de nuestro usuarios, la base de datos que va a tener acceso y los distintos permisos, si solo va a poder insertar, consultar data, administrar, etc.
Aquí podemos visualizar el performance de nuestro equipo, porciento de CPU usado, como está manejando la memoria, cuantas conexiones hay abiertas, entre otras.
en la sección de backup realizamos los backups de nuestras base de datos, podemos elegir una o varios catalogos, y le asignamos un nombre a nuestro backup.
En la siguiente pestaña de backup seleccionamos que tipo de backup vamos a realizar, si es parcial o completo (en caso de ser parcial, seleccionamos a que le deseamos realizar backup) y si deseamos que se bloqueen las tablas al momento de realizar para evitar data sucia en nuestro backup.

Aquí en esta última opción podemos ver nuestro listado de catálogos, si seleccionamos uno de los catálogos, podemos ver las tablas, las vistas, los esquemas de los índices y los procedimientos almacenados. aquí podemos reparar tablas, crearlas y eliminarlas.
Si deseamos restaurar una base de datos tenemos la opción de restore, y seleccionamos el archivo que deseamos restaurar, de lo contrario, si tenemos el grupo de tablas sin backup, solo tenemos que copiar una carpeta con el nombre de la base de datos y tomar los archivos .frm, .fry y colocarlos en el root de data.

En la parte de tools podemos encontrar otras herramientas como son el sqlbrowser, que es algo sinonimo al sql query analizer en MSSql Server, donde podemos ejecutar y realizar querys para nuestra base de datos, también cuentan con el sql migration tools para migrar data de una base de datos a otro, y de un motor diferente a los de mysql.

Espero que esto le sirva para buscar una alternativa completamente gratis para sus bases de datos, donde solo veo que les hace falta una herramienta de diagramas de base de datos y relaciones de tablas. Pero ha mejorado bastante y una muy buena opción para nuestras bases de datos. Existen otras opciones economicas de base de datos como son el Oracle versión G, el MS SQL Server Express 2005, MSDE 2000.

lunes, 8 de octubre de 2007

Mejorar rendimiento de SQL Server 2000

En este artículo les voy a dejar algunos tips para poder mejorar el rendimiento de nuestro SQL Server 2000, para aquellos administradores que tengan problemas con su motor de base de datos.
Una de las primeras Opciones que vamos a tomar para mejorar el rendiemiento de nuestro SQL Server 2000 es desactivar las opciones de auto update stadistics y auto create stadistic, ya que esto demanda un mayor rendimiento del servidor, esto también funciona para sql 2005. Otra opción que nos puede ayudar es tener desactivado la opción de auto shink que viene por defecto inactiva.

Una muy buena opción es crear filegroup especiales para las tablas que ocupan mucho espacio en nuestros discos y cada uno de los indices que componen la tabla. Para esto debemos elegir propiedades de nuestra base de datos y luego la pestaña filegroup, donde creamos los filegroup deseados y pulsamos el botón Ok.
Luego debemos elegir nuevamente propiedades y seleccionar la pestaña data files donde le crearemos un archivo o device y asignarle el filegroup creado con anterioridad.

Luego debemos asignarle a la tabla el filegroup creado para la tabla, si no se le ha asignado un device al filegroup le va a salir un mensaje que no tiene archivos asignados.



Otra medida para mejorar el rendimiento es colocar el transaction log en un disco separado del archivo de data de nuestra base de datos y en caso de tener solo un disco, en una partición o carpeta independiente a la de data. Otra recomendación es asignar el espacio de crecimiento de los devices fijos en megabytes en vez de porciento para que de esta forma el motor de base de datos no esté solitando crecer cada vez que se inserten o realicen varias consultas.


En en table filegroup se asigna el nombre del filegroup al que va a pertenecer nuestra tabla, por defecto se le asigna PRIMARY que es el default de la base de datos y es donde se almacena la configuración del servidor.


También es bueno contar con un buen esquema de base de datos es relacionar las tablas de la base de datos mediante campos de valores numericos o uniqueidentifier, no se recomienda que se creen llaves con campos char o varchar ya que hacen que las consultas sean más lentas.


Todos los filegroups se le pueden asignar uno o varios devices que se presentan en la columna files, si no tiene archivos asignados la columna files aparece en 0.
Espero que estas opciones le sirvan para un futuro, cualquier inquietud me dejan un comentario con su correo y se le responderan su inquietud.




martes, 2 de octubre de 2007

Google Apps una buena alternativa para pequeñas y medianas empresas


Hace un tiempo Google lanzó al mercado google apps que unifica los servicios de gmail y google docs para realizar pequeñas operaciones de oficina completamente en línea. Entre las herramientas con las que podemos contar se encuentran gmail, google talk y google calendar y cualquiera de estas cuentas funcionan como su propio dominio manteniendolo conectado en cualquier lugar y a todo momento.


Con google Docs podemos compartir archivos, trabajar con documentos y sin tener que instalarlo o descargarlo desde la web, lo único que necesita en conexión web y gualá.


Para más información puede entrar al siguiente link y descubra los nuevos beneficios que les brinda google: http://www.google.com/a/?utm_medium=et&utm_source=about_page&utm_campaign=es&token=app_es