Eladio Rincón y SQL Server

Desde Torrevieja :)

Recent Posts

Tags

News

links de interes

Community

Email Notifications

Archives

July 2011 - Posts

IN SQL Server – la cláusula: Otra curiosidad quizás no tan conocida

Como vimos hace poco en ElRinconDelDBA, es bueno utilizar la palabra clave IN para hacer pensar a los alumnos sobre el funcionamiento de SQL Server. No vamos a repetir el post anterior, porque obviamente ahí está para que pueda leerlo. Volvamos a la situación de la clase: usted está impartiendo un seminario y se marca como objetivo al inicio del seminario, sembrar las dudas en la audiencia para dos cosas: 1) que dejen de asumir cuestiones hasta antes de la clase irrefutables, y 2) que intenten aproximarse a cómo funciona SQL Server.

Lo que vamos a ver

Como sabe, al analizar el comportamiento de sus consultas, deberá guiarse de componentes comocidos como:

  • Microsoft SQL Server Profiler
  • Microsoft SQL Server Management Studio para 1) analizar planes de ejecución, 2) analizar estadisticas de Entrada/Salida (SET STATISTICS IO ON)
  • Microsoft SQL Server Tuning Advisor

En la publicación anterior, vimos como un mismo plan de ejecución (aparentemente), para consultas diferentes implicaba un coste muy diferente a nivel de Entrada/Salida, pero que “aparentemente” no se veía reflejado en el plan de ejecución y las estimaciones mostradas en SQL Server Management Studio. Ahora, haremos lo contrario, veremos una consulta “tipo” para la que se calculan diferentes planes de ejecución y sin embargo a nivel de Entrada/Salida el coste es prorcional.

Puede continuar leyendo el artículo en la siguiente URL:

http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=185&title=IN+SQL+Server+%e2%80%93+la+cl%c3%a1usula%3a+Otra+curiosidad+quiz%c3%a1s+no+tan+conocida

Conclusión

Como comentamos en la publicación anterior, la figura del Desarrollador de Bases de Datos (Database Developer) es una figura a tratar en Mayúsculas, y como diría Tom Peters, es imprescidible para la EXCELENCIA de tu software. Cualquier amago de evitar dicha figura en su organización tarde o temprano deberá reemplazarla por alguien, o como en muchos casos, será una figura “asumida” por miembros de la organización.

Alguna curiosidad sobre la palabra clave (keyword) IN en SQL Server

Introducción

En los seminarios de SQL Server que impartimos periodicamente, ayudamos a entender a los alumnos cómo SQL Server utiliza los planes de ejecución; una parte fundamental es que el alumno comprenda la representación lógica de la consulta que está pidiendo a SQL Server; una vez entendido el procesamiento lógico de la consulta, mostramos cómo traduce SQL Server esa representación lógica en acceso (físico/logico) para obtener los datos que se necesitan para resolver la consulta. Para romper el hielo con los alumnos, solemos empezar con un ejemplo como el siguiente:

Dada la siguiente tabla llamada predicados:

 

use Adventureworks 
go
drop table predicados;
create table predicados
(id int identity, d date, s char(10)
constraint predicados_pk primary key (id))

 

Con más del 100.000 filas:

 

insert predicados 
output inserted.*
values
  ('20081010', 'aaa'), ('20081011', 'abb')
, ('20081012', 'acc') ,('20081013', 'add')
, ('20081012', 'baa') ,('20081013', 'bdd')
, ('20081012', 'bcc') ,('20081013', 'bdd')
go

insert predicados
output inserted.*
select top 100000 p.d, p.s
from predicados p
cross join master.dbo.spt_values c

 

Para continuar leyendo el artículo le recomiendo visite la siguiente URL:

http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=184&title=Alguna+curiosidad+sobre+la+palabra+clave+(keyword)+IN+en+SQL+Server

 

Conclusión

Es fundamental que como desarrollador de bases de datos, conozca el funcionamiento interno de SQL Server para que las consultas que usted codifica sean eficientes en SQL Server. Lamentablemente, la figura de Desarrollador de Bases de Datos (DBD) es una figura en extinción en estos días en los que se tiende a entender la base de datos como un simple repositorio de información. Mientras las empresas no adquieran conciencia de la importancia de la base de datos, los desarrollos serán pseudo-eficientes y además de los problemas habituales que suelen encontrarse en los desarrollos, se encontrarán con problemas de eficiciencia de acceso a los datos.

Generalmente, con aumentar la escalabilidad del servidor suele resultar: incrementar los recursos asignados a la máquina (disco, memoria, CPU), pero hay otros muchos casos en los que las posibilidades de escalabilidad llegaron a sus límites y se necesitan aplicar soluciones alternativas.

Así que desde aquí sirva este artículo como llamada a los decisores en las empresas a que cuiden un poco sus arquitecturas y le den mucha importancia a la base de datos: fíjese que sin base de datos es imposible que funcione su aplicación, así que considerela como un recurso crítico!