Como comenta mi amigo Gux en su blog (http://blogs.solidq.com/ES/glarriera/default.aspx), SQL Server 2008 (Katmai) ya tiene fecha oficial de lanzamiento.
Se presentará oficialmente el 27 de febrero de 2008, en Los Angeles, y formará parte de un lanzamiento conjunto:
Nota de prensa: (http://www.microsoft.com/presspass/press/2007/jul07/07-10WPCDay1PartnersPR.mspx)
Sitio web de SQL Server 2008: (http://www.microsoft.com/sql/prodinfo/futureversion/default.mspx), donde puedes ver 5 videos de presentación del producto, y diferentes whitepapers del producto…
A estudiar… J
Ron Talmage ha estado trabajando en el SQL Server Customer Lab, buscando las cosquillas a Full-Text, y aquí puedes leer un resultado de las conclusiones obtenidas:
http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/ftslesld.mspx
ay Ron, que envidia!!
No sé si lo han hecho público en el Teched de Junio, pero siguiendo la tabla de hechos de mi amigo Javier Loría, creo que la próxima versión de Visual Studio ya tiene nombre en clave (codename).
Resulta que Javier dice que "hasta que no están hechas las camisetas del producto, poca información es segura relativa a nombres de productos, fechas de entrega, etc. "
Hoy durante el Solid Quality Summit en Madrid (podéis ver una foto de los asistentes – más de 80 personas), capturé una instantánea en la que se encontré una persona con una camiseta haciendo referencia a una versión de Visual Basic hasta ahora desconocida…
Esta es la foto del delegado con la camiseta:
Más información en http://www.elguille.info
Y esta es la foto de los asistentes al evento (se puede ver "medio cuerpo" de Fernando G. Guerrero en acción J):
Database Mirroring también está disponible para conexiones ODBC; recuerda que para que la aplicación cliente sepa a qué servidor intentar "re-conectar", en algún sitio en su configuración debe conocer los servidores miembros.
Puedes cambiar la cadena de conexión de tu aplicación usando la siguiente sintaxis:
Cambiar la cadena de conexión, es posible que no requiera recompilar la aplicación si lo gestionas a través de ficheros INI, pero en las "viejas" aplicaciones VB6, no se utilizaba esta técnica con demasiada frecuencia por lo que con bastante probabilidad requeriría recompilación de la aplicación.
Como debes saber, las APIs de acceso a datos también implementan Mirroring para ODBC, por lo que si tienes DSNs de usuario también es muy fácil de cambiar; tan sólo tendrás que cambiar el Driver al nuevo Driver SQL Native Cliente (fíjate en esta primera pantalla el elemento seleccionado):
Y luego, en la configuración de la base de datos a la que deseas conectar, tienes la posibilidad de establecer cual es servidor mirror (en el caso de ejemplo sería DELL-ERH\INSTANCE2):
Otras consideraciones interesantes que comenté en la presentación de ayer de nuestro SQL Summit:
En SQL Server 2008, (según comentan los whitepapers iniciales), no será necesario codificar quien el servidor mirror porque "milagrosamente" la aplicación cliente tendrá cacheada esa información. Digo "milagrosamente", porque no conozco todavía el mecanismo que utilizarán para cachear esa información. Recuerdo que en las primeras fases betas de SQL Server 2005, implementaban un mecanismo similar, pero con el paso del tiempo la implementación se quitó del producto por razones que desconozco.
Mi opinión personal es que el comportamiento que se promete para SQL Server 2008, es el comportamiento que "debería ser" J
Microsoft ya ha anunciado oficialmente la próxima versión de SQL Server… casi todos sabíamos que se llamaría Katmai, pero no su año (al menos oficialmente)… pues será en 2008.
¿Cuál es tu feature más interesante? A mí sin lugar a dudas, desde que nos lo presentaron en Redmond allá por Febrero, me ha enganchado con el Declarative Management… Desde luego han comenzado fuerte:
Por cierto, la URL que a todo te lleva
http://www.microsoft.com/sql/prodinfo/futureversion/default.mspx
A por ellooooo… J
He estado impartiendo una serie de charlas para nuestros Summits en Latam (http://learning.solidq.com/la/CourseDetail.aspx?CourseScheduleId=211), y ayer tuve un webcast similar para CAPA8 en Argentina (http://www.microsoft.com/conosur/technet/realityit/).
Durante las sesiones hice referencia a conocer el uso que se hace de los ficheros del servidor, cual es la topología de uso de cada fichero, cuales son los más usados, etc.
En SQL Server 2005, aparece una DMV (dm_io_virtual_file_stats, http://msdn2.microsoft.com/es-es/library/ms190326.aspx), que nos reporta información tan interesante como:
Nombre de columna
Tipo de datos
Descripción
database_id
smallint
Id. de la base de datos.
file_id
Id. del archivo.
sample_ms
int
Número de milisegundos desde que se inició la instancia de SQL Server. Esta columna se puede utilizar para comparar diferentes resultados de esta función.
num_of_reads
bigint
Número de operaciones de lectura realizadas en el archivo.
num_of_bytes_read
Número total de bytes leídos en el archivo.
io_stall_read_ms
Tiempo total, en milisegundos, que los usuarios han esperado para que se realicen las lecturas en el archivo.
num_of_writes
Número de operaciones de escritura realizadas en este archivo.
num_of_bytes_written
Número total de bytes escritos en el archivo.
io_stall_write_ms
Tiempo total, en milisegundos, que los usuarios han esperado para que se completen las escrituras en el archivo.
io_stall
Tiempo total, en milisegundos, que los usuarios han esperado para que se completen las operaciones de E/S en el archivo.
size_on_disk_bytes
Número de bytes utilizados en el disco para este archivo. En el caso de archivos dispersos, este número es el número real de bytes en el disco utilizados para las instantáneas de bases de datos.
file_handle
varbinary
Identificador de archivo de Windows para este archivo.
Obviamente es copy/paste de la url anterior, pero fíjate que la DMV reporta el número de lecturas, escrituras, incluso bytes, realizados en cada fichero de base de datos.
Esto es absolutamente indispensable para elegir cómo deben estar distribuidos los ficheros, en qué unidades físicas, incluso, qué nivel RAID es adecuado. La literatura dice que debes utilizar tal o cual nivel RAID para cada tipo de fichero, pero la realidad es que esa decisión la tomarás en función del número de discos disponibles, así que por ejemplo, si tienes 9 discos, ¿qué te conviene montar?
O quizás:
Igual estás pensando: "Madre mia, cuanto lio, y yo que pensaba que había que montar topologías concretas para cada tipo de fichero; ¿no habíamos quedado que RAID10 para logs, y RAID5 para datos si no tenemos más discos?" Esa decisión la tendrás que tomar en función de uso que se haga de tus ficheros, y esa información la obtienes con el procedimiento que veremos a continuación J
Si claro, ¿pero quién justifica a los tíos de sistemas que en una instalación que ha estado funcionando "bien" durante un par de años, vamos a cambiar los niveles RAID porque lo ponga en este blog? Si lo necesitas en tu sistema, pues tendrás que justificarlo y proponer el cambio; piensa que depende del beneficio que tengas… ¿conviene montar toda esa historia para ganar una media de digamos 100 milisegundos por consulta? Pues depende… hace no mucho estuve con una empresa en Costa Rica que gestionaban créditos hipotecarios para miles de agencias… piensa un momento que esos 100 milisegundos que podrías ganar, supondrían mayor concurrencia en tu sistema (las transacciones son más cortas), y mayor tiempo de respuesta (sensación de usuario)… como siempre, depende la inversión que vas a hacer con el retorno de beneficios…
El siguiente código sirve para identificar a nivel de fichero de base de datos, qué tipo de uso se hace. El procedimiento almacenado está basado en el procedimiento anterior de waitstats, así que esta vez me permitiré no explicarlo; recordar: se hacen dos capturas, y se calculan los deltas, ok?
IF EXISTS (SELECT * FROM SYS.PROCEDURES WHERE name = 'sproc_get_fileiostats_percentage')
DROP PROC dbo.sproc_get_fileiostats_percentage
GO
CREATE PROC dbo.sproc_get_fileiostats_percentage
@hours tinyint = null,
@minutes tinyint = null,
@seconds tinyint = null
AS
SET NOCOUNT ON
IF @hours IS NULL
SET @hours = 0
IF @minutes IS NULL
SET @minutes = 0
IF @seconds IS NULL
SET @seconds = 0
--
-- Validaciones iniciales
IF @hours < 0 OR @hours > 24
BEGIN
RAISERROR ('Hours range is not valid.', 16, 1 )
RETURN
END
IF @minutes < 0 OR @minutes > 60
RAISERROR ('Minutes range is not valid.', 16, 1 )
IF @seconds < 0 OR @seconds > 60
RAISERROR ('Seconds range is not valid.', 16, 1 )
IF @hours = 0 and @minutes = 0 and @seconds = 0
RAISERROR ('The measure time must be greater than zero.', 16, 1 )
DECLARE @t TABLE (
id int identity
, database_id smallint
, file_id smallint
, num_of_reads bigint
, num_of_bytes_read bigint
, io_stall_read_ms bigint
, num_of_writes bigint
, num_of_bytes_written bigint
, io_stall_write_ms bigint
)
-- Inserción de primera captura
INSERT @t
( database_id
, file_id
, num_of_reads
, num_of_bytes_read
, io_stall_read_ms
, num_of_writes
, num_of_bytes_written
, io_stall_write_ms )
SELECT
, io_stall_write_ms
FROM
sys.dm_io_virtual_file_stats(-1,-1)
-- A esperar n tiempo
DECLARE @s CHAR(8)
SET @s =
RIGHT ('00' + CAST (@hours as VARCHAR(2)), 2) + ':'
+ RIGHT ('00' + CAST (@minutes as VARCHAR(2)), 2) + ':'
+ RIGHT ('00' + CAST (@seconds as VARCHAR(2)), 2)
WAITFOR DELAY @s
-- Inserción de segunda captura
SELECT s.name, v.* FROM (
T1.database_id
, T1.file_id
, (AVG(T2.num_of_reads - T1.num_of_reads)) num_of_reads
, (AVG(T2.num_of_bytes_read - T1.num_of_bytes_read)) num_of_bytes_read
, (AVG(T2.io_stall_read_ms - T1.io_stall_read_ms)) io_stall_read_ms
, (AVG(T2.num_of_writes - T1.num_of_writes)) num_of_writes
, (AVG(T2.num_of_bytes_written - T1.num_of_bytes_written)) num_of_bytes_written
, (AVG(T2.io_stall_write_ms - T1.io_stall_write_ms)) io_stall_write_ms
FROM @T t1
JOIN @T t2
ON T1.database_id = T2.database_id
AND T1.file_id = T2.file_id
AND t1.id < T2.id
GROUP BY
) v
JOIN sys.databases s
ON v.database_id = s.database_id
WHERE num_of_reads <> 0 OR num_of_writes <> 0
Y un ejemplo de uso sería el siguiente:
EXEC dbo.sproc_get_fileiostats_percentage
@hours = 1,
@minutes = null,
@seconds = null
Ya está en marcha el SQLU Summit 2007 que lleva camino de convertirse en todo un clásico en el mundo IT en España. Algunas preguntas que quizás te ayuden a comprender la importancia de tu asistencia:
¿Has estado en ITForum, o TechEd y pierdes mucho contenido por culpa del idioma? Nuestro evento es en castellano, por lo que seguro que entiendes todo.
¿Has estado en ITForum, o TechEd y no has podido preguntar dudas a los ponentes? Nosotros somos más próximos al delegado… de hecho, nos tienes a tu disposición durante los 5 días de evento, por lo que plantear casos reales a los delegados es uno de los requerimientos más habituales.
¿Has estado en eventos de una mañana en la que solamente se te presentan funcionalidades? Nosotros vamos más allá. Nuestras presentaciones están basadas en la experiencia de proyectos reales.
¿Has estado en eventos de día completo que presentan muchas cosas en poco tiempo? Nosotros tenemos tres tracks diferentes (BI, Relacional, Desarrollo .NET), y los delegados pueden planificar de antemano a qué ponencias asistirán.
Además, (y a diferencia de otros eventos), los seminarios del lunes son gratuitos para los asistentes. Podrás elegir uno de los siguientes seminarios:
Optimización de Servidores SQL Server
Desarrollo con Sharepoint 2007
Desarrollo de una solución de BI End-to-End
Antonio Soto, Marino Posadas, y un servidor (Eladio Rincón con SP2), estamos a cargo de los tres tracks, y extraoficialmente, podemos adelantaros la lista de sesiones; digo extraoficialmente, porque todavía hay flecos que cerrar, pero con una probabilidad de 80-90% serán las mismas sesiones:
Track de Desarrollo:
Buenas prácticas en aplicaciones C/S con .NET 2.0
Visual Studio Team System: El ciclo de vida de las aplicaciones
Visual Studio Team System para profesionales de BB.DD
Aspectos avanzados del desarrollo en ASP.NET 2.0
Programación Web mediante ASP.NET 2.0 AJAX Extensions
Aspectos avanzados de acceso a datos en ADO.NET 2.0
Integración de aplicaciones con Visual Studio Tools for Office 2005
Tips & Tricks en .NET 2.0
Desarrollo con las API's de Windows Vista: WinFx
Windows Longhorn Server para el Desarrollador
Orcas y el desarrollo en Windows Vista/Longhorn
Novedades en los lenguajes para Orcas: VB.NET y C# v. 3.0
LINQ y el nuevo modelo de acceso a datos
WPF/E, interfaces de usuario y Microsoft Expression
WCF y la integración de modelos de comunicación
WWF: programación de la Inteligencia de Negocio
Windows ScoreCard: seguridad e identidad en las nuevas plataformas
Desarrollo .NET para Microsoft Windows SharePoint Services (WSS) 3.0
Track de Business Inteligence (la tradicional sala de los cubos):
Novedades de Katmai para Business Intelligence (*Si conseguimos permiso para ello)
Integración de Office 2007 en una solución de BI
Trucos y Buenas Prácticas en SSIS
Reporting Services y los Servicios Web XML
Performance Point 2007: Un vistazo general
Planificación mi negocio con PerformancePoint 2007:Planning Server
Implementando Cuadros de Mando con PerformancePoint 2007
Modelando mi negocio con Performance Point 2007: Business Modeler
¿Qué pinta Sharepoint 2007 en todo esto?
Trucos y Buenas Prácticas en SSRS
Optimización de rendimiento en SSAS
Integrando BI en el día a día
Generación de Informes Ad-Hoc: Report Builder
Implementando Procesos ETL con SSIS
Buenas Prácticas en SSAS: MDX y Cálculos
El proceso de desarrollo de Soluciones de BI
Agregando Inteligencia a mis aplicaciones: Data Mining
Escalabilidad y Alta Disponibilidad en una Solución de BI
Track del motor relacional (la tradicional sala de los índices):
Seguridad de datos: Mejores prácticas para asegurar tu base de datos y tus datos
Service Broker: Introducción, conceptos y usos
SSIS para procesos OLTP
Service Broker: conceptos avanzados y mejores prácticas desde la experiencia
Novedades en Katmai (* Si conseguimos permiso explícito para ello)
Camino del Grid: Replicación Peer To Peer
MS Clustering: guía de instalación y administración adecuada
Indexación: tipos de índices, ventajas, desventajas, y mantenimiento
Pon una DMV en tu vida para ver donde le duele a tu servidor
Ejemplos prácticos de para administradores con SMO y WMI
Paginación con SQL Server 2005
Mantenimiento, recuperación y corrupción de datos en SQL Server 2005
Procedimientos almacenados si/no… menudo dilema
VSTS para DBPros en el ciclo de vida de un proyecto de software
Casos reales de DBMirroring y mejores prácticas
ADO.NET y nuevas habilidades de SQLNCLI
Quest Software (Replication Tools)
Mejores Prácticas aprendidas optimizando sistemas de bases de datos
Todo un WOW de sesiones, ¿verdad? Más información del evento, la puedes encontrar en:
La documentación oficial:
http://blogs.solidq.com/ES/formacion/Documentos/SUMMITMADRID.pdf
¿Cómo registrarse?
http://learning.solidq.com/ib/CourseDetail.aspx?CourseScheduleId=215