sys.db_db_missing_index_* (vistas) --> Rastrean los índices que pudieran crearse. Son: sys.sys.db_db_missing_index_detais, sys.db_db_missing_index_group_stats y
sys.db_db_missing_index_groups. Para decidir si los índices propuestos serían ventajosos, se puede calcular de la siguiente manera:
SELECT user_seeks * avg_total_user_cost * (avg_user_impact * 0.01) AS
index_advantage, migs.last_user_seek, mid.statement as
'Database.Schema.Table',
mid.equality_columns, mid.inequality_columns, mid.included_columns,
migs.unique_compiles, migs.user_seeks, migs.avg_total_user_cost,
migs.avg_user_impact
FROM sys.dm_db_missing_index_group_stats AS migs WITH (NOLOCK)
INNER JOIN sys.dm_db_missing_index_groups AS mig WITH (NOLOCK)
ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details AS mid WITH (NOLOCK)
ON mig.index_handle = mid.index_handle
ORDER BY index_advantage DESC;
-- Si el valor supera 5000 indica que debería evaluarse la creación de determinados índices.
-- Si el valor supera los 10000, quiere decir que ya contamos con un índice que puede ofrecer una mejora de rendimiento significativa en operaciones de lectura.
-- Para recoger todos los planes de ejecución en la caché:
SELECT * FROM sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle);
-- Extraer las 5 querys más pesadas por consumo de CPU:
SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time],
Plan_handle, query_plan
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)
ORDER BY total_worker_time/execution_count DESC;
GO
Wednesday, 24 de March del 2010
Sugerencias de índices y planes de ejecución de consultas pesadas (SQL Server)
Si queréis ser proactivos en vuestro día a día como dba, estas consultas os pueden ser útiles.
Posted by David Lozano
at
12:04
Wednesday, 10 de March del 2010
Celebrando mis 25 exámenes de certificación.
Este mes han pasado 8 años desde el primer examen que hice, y precisamente con el último, el de actualización de OCP a la versión 11g, hacen un total de 25.
Hoy me tomo algo para celebrarlo.
18-Feb-2010 Oracle Database 11g: New Features for Administrators English (ENU) - Oracle Corporation 1Z0-050 Passed
5-Nov-2009 PRO:MS SQL Serv 08,Design,Optimize, & Maintain DB Admin Solu - Microsoft 070-450 Passed
15-Apr-2009 ITIL Foundation v.3 - EXIN, Inc. EX0-101 Passed
4-Mar-2009 TS: MS SQL Server 2008, Implementation and Maintenance - Microsoft 070-432 Passed
20-Feb-2009 Oracle Database 10g Hands-On Course Requirement - Oracle Corporation 1Z0-098 Passed
19-Feb-2009 Oracle Database 10g: Administration II - Oracle Corporation 1Z0-043 Passed
11-Feb-2009 Oracle Database 10g: Administration I - Oracle Corporation 1Z0-042 Passed
19-Sep-2008 Oracle Database 10g: Administration I - Oracle Corporation 1Z0-042 Failed
3-Dec-2004 Plan,Imp&Main a MS Win Serv 03 Env for an MCSE Cert on W2K - Microsoft 070-296 Passed
17-Sep-2004 Man&Maintain a MS Win Ser 03 Env for an MCSA Cert on W2K - Microsoft 070-292 Passed
6-Apr-2004 SUN CERTIFIED SYSTEM ADMINISTRATOR FOR SOLARIS 9 PART 1 - Sun Microsystems 310-014 Passed
20-Jan-2004 Oracle9i Database: Fundamentals I - Oracle Corporation 1Z0-031 Passed
24-Oct-2003 Oracle9i Database: Fundamentals I - Oracle Corporation 1Z0-031 Failed
1-Jul-2003 INTRODUCTION TO ORACLE9I: SQL - Oracle Corporation 1Z0-007 Passed
5-Jun-2003 DEPLOYING DOMINO R5 APPLICATIONS - Lotus Development (190, 191) 190-522 Passed
4-Jun-2003 IMPLEMENTING A DOMINO R5 INFRASTRUCTURE - Lotus Development (190, 191) 190-521 Passed
23-May-2003 MAINTAINING DOMINO R5 SERVERS AND USERS - Lotus Development (190, 191) 190-520 Passed
26-Nov-2002 Installing, Configuring and Administering MS SQL Server 2000 - Microsoft 070-228 Passed
22-Nov-2002 DESIGN & IMPLEMENT DB W/ MS SQL SERVER 2000 ENTERPRISE EDITI - Microsoft 070-229 Passed
18-Nov-2002 Installing, Configuring and Administering MS SQL Server 2000 - Microsoft 070-228 Failed
5-Jul-2002 DESIGNING A WIN2K DIRECTORY SERVICES INFRASTRUCTURE - Microsoft 070-219 Passed
10-May-2002 IMPLEMENT AND ADMINISTER A WIN2K DIRECTORY SERVICES INFRASTR - Microsoft 070-217 Passed
30-Apr-2002 IMPLEMENT AND ADMINISTER A WIN2K NETWORK INFRASTRCTURE - Microsoft 070-216 Passed
19-Apr-2002 INSTALL, CONFIGURE & ADMINISTER WIN 2000 SERVER - Microsoft 070-215 Passed
1-Mar-2002 INSTALL, CONFIGURE & ADMINISTER WIN 2000 PROFESSIONAL - Microsoft 070-210 Passed
Hoy me tomo algo para celebrarlo.
18-Feb-2010 Oracle Database 11g: New Features for Administrators English (ENU) - Oracle Corporation 1Z0-050 Passed
5-Nov-2009 PRO:MS SQL Serv 08,Design,Optimize, & Maintain DB Admin Solu - Microsoft 070-450 Passed
15-Apr-2009 ITIL Foundation v.3 - EXIN, Inc. EX0-101 Passed
4-Mar-2009 TS: MS SQL Server 2008, Implementation and Maintenance - Microsoft 070-432 Passed
20-Feb-2009 Oracle Database 10g Hands-On Course Requirement - Oracle Corporation 1Z0-098 Passed
19-Feb-2009 Oracle Database 10g: Administration II - Oracle Corporation 1Z0-043 Passed
11-Feb-2009 Oracle Database 10g: Administration I - Oracle Corporation 1Z0-042 Passed
19-Sep-2008 Oracle Database 10g: Administration I - Oracle Corporation 1Z0-042 Failed
3-Dec-2004 Plan,Imp&Main a MS Win Serv 03 Env for an MCSE Cert on W2K - Microsoft 070-296 Passed
17-Sep-2004 Man&Maintain a MS Win Ser 03 Env for an MCSA Cert on W2K - Microsoft 070-292 Passed
6-Apr-2004 SUN CERTIFIED SYSTEM ADMINISTRATOR FOR SOLARIS 9 PART 1 - Sun Microsystems 310-014 Passed
20-Jan-2004 Oracle9i Database: Fundamentals I - Oracle Corporation 1Z0-031 Passed
24-Oct-2003 Oracle9i Database: Fundamentals I - Oracle Corporation 1Z0-031 Failed
1-Jul-2003 INTRODUCTION TO ORACLE9I: SQL - Oracle Corporation 1Z0-007 Passed
5-Jun-2003 DEPLOYING DOMINO R5 APPLICATIONS - Lotus Development (190, 191) 190-522 Passed
4-Jun-2003 IMPLEMENTING A DOMINO R5 INFRASTRUCTURE - Lotus Development (190, 191) 190-521 Passed
23-May-2003 MAINTAINING DOMINO R5 SERVERS AND USERS - Lotus Development (190, 191) 190-520 Passed
26-Nov-2002 Installing, Configuring and Administering MS SQL Server 2000 - Microsoft 070-228 Passed
22-Nov-2002 DESIGN & IMPLEMENT DB W/ MS SQL SERVER 2000 ENTERPRISE EDITI - Microsoft 070-229 Passed
18-Nov-2002 Installing, Configuring and Administering MS SQL Server 2000 - Microsoft 070-228 Failed
5-Jul-2002 DESIGNING A WIN2K DIRECTORY SERVICES INFRASTRUCTURE - Microsoft 070-219 Passed
10-May-2002 IMPLEMENT AND ADMINISTER A WIN2K DIRECTORY SERVICES INFRASTR - Microsoft 070-217 Passed
30-Apr-2002 IMPLEMENT AND ADMINISTER A WIN2K NETWORK INFRASTRCTURE - Microsoft 070-216 Passed
19-Apr-2002 INSTALL, CONFIGURE & ADMINISTER WIN 2000 SERVER - Microsoft 070-215 Passed
1-Mar-2002 INSTALL, CONFIGURE & ADMINISTER WIN 2000 PROFESSIONAL - Microsoft 070-210 Passed
Posted by David Lozano
at
12:26
Wednesday, 3 de March del 2010
Service Pack 4 para SQL Server 2005
Parece que no soy el único que se pregunta para cuándo un SP4 de SQL Server 2005: http://connect.microsoft.com/SQLServer/feedback/details/522122/service-pack-4-for-sql-server-2005
Indagando más encontramos una nota reveladora, del 12 de febrero, en un blog de Microsoft:
http://blogs.msdn.com/sqlreleaseservices/archive/2010/02/12/sql-server-servicing-plans.aspx
Indagando más encontramos una nota reveladora, del 12 de febrero, en un blog de Microsoft:
http://blogs.msdn.com/sqlreleaseservices/archive/2010/02/12/sql-server-servicing-plans.aspx
De forma abrumadora habéis pedido otro Service Pack para SQL Server 2005 (...) anticipamos que este será el último Service Pack para esta versión de SQL Server. (...) Se amplia el soporte hasta el 12/04/2016. Visita http://support.microsoft.com/lifecycle/ para detalles específicos. (...)
Tuesday, 2 de March del 2010
Calcular espacio reservado, utilizado y de log en SQL Server 2005 y 2008
Una forma sencilla de tener el espacio utilizado de una base de datos SQL Server en un momento dado:
Para obtenerlo en una única consulta:
Si queremos tener un pronóstico del crecimiento, sólo será necesario crear un job que cargue los datos en una tabla de históricos.
--DATOS
SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 = 0
--USADO
SELECT (sum(used)*8)/1024 FROM nombredelabd.dbo.sysindexes WHERE indid IN (0,1,255)
--LOG
SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 <> 0
Para obtenerlo en una única consulta:
SELECT 'nombredelabd' AS basededatos,(SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 = 0) datos,
(SELECT (sum(used)*8)/1024 FROM nombredelabd.dbo.sysindexes WHERE indid IN (0,1,255)) usado,
(SELECT (sum (size)*8)/1024 FROM nombredelabd.dbo.sysfiles WHERE status & 64 <> 0) log
Si queremos tener un pronóstico del crecimiento, sólo será necesario crear un job que cargue los datos en una tabla de históricos.
(Page 1 of 1, totaling 4 entries)

