aprile 2007 - Posts

Recuperare informazioni sugli indici

In SQL Server 2005 esistono diverse DMV e DMF che restituiscono informazioni sugli indici. Le 2 senz'altro più utili sono la DMF sys.dm_db_index_physical_stats che restituisce informazioni sullo stato di frammentazione di ciascun indice e la DMV sys.dm_db_index_usage_stats che rivela quante volte ed in che modo è stato utilizzato ciascun indice del database corrente e di cui ho parlato nel precedente post.

Proprio in occasione del precedente post, Davide Mauri mi ha segnalato di aver creato e messo a disposizione sul suo sito delle UDF molto utili per interrogare lo status degli indici. Non solo per verificarne l'effettivo utilizzo e lo stato di frammentazione, ma anche per sapere quanto spazio occupa ciascun indice ed i campi su cui è stato definito. Potete trovarle a questo link.

Bye

Tags: ,


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

Misurare l'utilità di un indice

Prendo spunto da un thread che sta andando avanti da alcuni giorni nel newsgroup microsoft.public.it.sql per parlare di indicizzazione dei dati.

Non è raro vedere strutture dati con una elevata quantità di indici e se in un datawarehouse ciò può essere ammissibile data la sua destinazione d'uso (query che interrogano grandi quantità di dati), in un sistema OLTP gli indici dovrebbero essere ridotti al minimo e, soprattutto, avere la certezza che siano effettivamente utili.
In SQL Server 2005 una DMV ci da informazioni precise su quanto e come un indice è stato utilizzato. Si tratta della sys.dm_db_index_usage_stats che, tra le altre informazioni, ci dice quanti seeks, quanti scans, quanti lookups e quanti updates sono stati risolti accedendo ad ogni singolo indice a partire dall'ultimo avvio del servizio.

Non mi sorprenderei affatto che sui 13 indici definiti su una tabella (tanti ne ha ipotizzati l'autore del thread di cui sopra) solo 2 o 3 siano effettivamente utilizzati e tutti gli altri rappresentino solo una inutile zavorra...

Bye

Tags: , ,


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

Individuare tutti i permessi di un utente

Capita molto spesso che mi si chieda come fare ad avere un report su tutti i permessi assegnati ad un utente in un database. Sia in Enterprise Manager con le versioni precedenti di SQL Server che in SQL Server Management Studio con la versione 2005, è possibile visualizzare i permessi di un utente o di un database role; se però l'utente oltre ad avere assegnati dei permessi in maniera diretta (cosa sempre sconsigliabile) dispone anche di altri permessi derivanti dall'appartenenza ad uno o più database role, ottenere la lista dei permessi risultanti diventa più complesso.

La soluzione arriva dalla funzione fn_my_permissions che, benchè come dica il nome serva a restituire l'elenco dei propri permessi, può essere utilizzata in un execution context da parte di un utente con privilegi adeguati per impersonare temporaneamente l'utente di cui vuole ottenere la lista dei permessi, siano essi assegnati direttamente allo user in questione che derivanti dalla sua appartenenza ad uno o più database roles.

Nello script seguente sono riportati gli step per testare la soluzione

CREATE DATABASE Test
GO

CREATE LOGIN MyLogin WITH PASSWORD = 'ComplexP@s$w0rd'
GO

USE Test
GO

CREATE USER MyUser FOR LOGIN MyLogin
GO

CREATE ROLE MyRole
GO

EXEC sp_addrolemember 'MyRole', 'MyUser'
GO

CREATE TABLE dbo.MyTable
(
 ID int not null
)
GO

CREATE TABLE dbo.MyTableBis
(
 ID int not null
)
GO

GRANT SELECT ON dbo.MyTable TO MyRole
GO

GRANT INSERT, UPDATE, DELETE ON dbo.MyTable TO MyUser
GO

EXECUTE AS USER = 'MyUser'

SELECT TABLE_SCHEMA, TABLE_NAME, permission_name
FROM INFORMATION_SCHEMA.TABLES
 CROSS APPLY fn_my_permissions(TABLE_SCHEMA + '.' + TABLE_NAME, 'OBJECT')

REVERT


Tags: , ,


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

Security Workshop e New Wave Tour

Due eventi organizzati da TechNet che toccheranno Roma e Milano (il Security Workshop) e Genova, Bologna, Padova, Catania, Cagliari e Bari.

Il TechNet Security Workshop è giunto alla sua settima edizione; i soliti Fabrizio Grossi, Piergiorgio Malusardi e Francesco Giorgini si alterneranno in qualità di speaker. Insieme a loro ci sarà Lori Woehler (Security Lead di MS Corp), Andrea Valboni (National Technology Officer - Microsoft Italia) e Feliciano Intini (Chief Security Advisor - Microsoft Italia).

Al TechNet New Wave Tour si parlerà invece di Longhorn, System Center Operations Manager, System Center Essentials e Forefront Client Security.

Bye

Tags: ,


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

Ken Henderson intervista Joe Celko

Nel suo blog Ken Henderson ha pubblicato una intervista a Joe Celko, uno dei padri dell'ANSI SQL-89 e SQL-92.

Nell'intervista vengono affrontate, con l'ironia che contraddistingue ogni intervento di Joe Celko, quelle che si considerano essere le prossime sfide in tema di gestione dei dati per il prossimo futuro. Sfide che saranno incentrate non solo sulla disponibilità 24x7 dei dati ma sull'utilizzabilità di una quantità di informazioni impensabile solo fino a pochi anni fa.

L'intervista è disponibile a questo link.

Tags:


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

SQL Server Migration Assistant for Oracle

MS ha rilasciato la terza versione del SQL Server Migration Assistant for Oracle.

Se qualcuno di voi lo avesse utilizzato mi farebbe piacere avere un feedback. Potete lasciarlo come commento a questo post oppure potete inviarmi una mail.

Vi ricordo anche che oltre a quello per Oracle sono disponibili i Migration Assistant per Access e Sybase e saranno presto rilasciati quelli per DB2 e Informix. Maggiori informazioni in questo link.

Bye

Tags: ,


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

Serie di hotfix per SQL Server 2005

Quella appena trascorsa è stata una settimana molto ricca di hotfix per SQL Server 2005, molte delle quali volte a risolvere alcuni problemi legati ai Maintenance Plan di SQL Server 2005.

Peccato, perchè i Maintenance Plan come erano stati concepiti in SQL Server 2005, basati su Integration Services, iniziavano a piacermi. Nei ng e forum più volte ho criticato i problemi di cui erano fonte i Maintenance Plan della versione 2000 ed il salto di qualità fatto con la versione 2005 è stato notevole.

Mi rimane da chiedere che bisogno ci fosse di introdurre la possibilità di definire dei cleanup tasks con frequenza oraria e più in generale che bisogno ci sia di introdurre delle nuove funzionalità in un Service Pack.

Qui la lista completa delle ultime hotfix per SQL Server 2005.

Bye

Tags: ,


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments

Renewed

Poche ore fa ho ricevuto la tanto attesa mail che mi informa di aver ricevuto, per la quinta volta, l'MVP Award.

Nel corso degli anni il programma è cambiato; in Italia eravamo poco più di 20 nel 2003 e siamo oltre 50 oggi. Molti dei 20 sono ancora MVP e molti volti nuovi lo sono diventati nel corso degli anni ma ricordo sempre con un pizzico di rammarico il TechEd del 2003 a Barcellona dove un gruppo di persone eterogeneo per provenienza ed esperienze, molti dei quali non si erano mai incontrati prima di quell'evento, divennero i Gladiators, e con tale "nick" conosciuti in tutto il mondo.

Nonostante sia convinto che quanto vissuto in quel TechEd non tornerà più in nessun altro evento, sono sempre contento ed orgoglioso di far parte della "famiglia MVP", uno splendido gruppo di persone messo insieme da Alead e tra cui ho trovato alcuni amici che al di la delle distanze che ci separano sento sempre molto vicini. Ecco, questo è il benefit più importante dell'essere MVP: sapere di poter contare su dei veri amici.

Bye


(C) 2007 ASPItalia.com/WinFXItalia.com - All rights reserved

Posted by lbianchi with no comments