Ho appena impostato MiniProfiler per salvare i risultati in SQL Azure, è abbastanza semplice. Stiamo utilizzando MiniProfiler.MVC3 per occuparci di tutti i collegamenti come descritto in here.
Lo script di creazione tabella è incorporato nell'assieme con il campo statico SqlServerStorage.TableCreationScript
, quindi è possibile utilizzarlo, ma mentre si scava nel codice ho trovato che l'ultimo ramo di sviluppo ha migliorato leggermente lo script aggiungendo alcuni indici. La struttura della tabella è altrimenti invariata, quindi funziona ancora con l'ultimo pacchetto disponibile su nuget.
Al momento della scrittura di here is direct link all'ultimo script di creazione tabella.
Dopo che l'unica cosa che devi fare è di set-up MiniProfiler utilizzare SQL con la sola riga di codice:
MiniProfiler.Settings.Storage = new SqlServerStorage("<your connection string>");
Se non si sta usando SQL Azure, questo è tutto, ma ho trovato una problema quando abbiamo provato ad usarlo in Azure. Ho ricevuto la seguente eccezione (grazie ELMAH) a profilare cercato di salvare:
System.Data.SqlClient.SqlException
tabelle senza un indice cluster non sono supportati in questa versione di SQL Server. Si prega di creare un indice cluster e riprovare.
Per risolvere questo problema, ho dovuto aggiungere una colonna aggiuntiva (non utilizzata) alla tabella MiniProfilers
. Ecco l'inizio dello script creare tabella in questione:
create table MiniProfilers
(
RowId integer not null identity constraint PK_MiniProfilers primary key clustered, -- Need a clustered primary key for SQL azure
Id uniqueidentifier not null,
Name nvarchar(200) not null,
E dal momento che la colonna Guid ID non era più la chiave primaria, ho aggiunto un indice aggiuntivo per garantire le ricerche sono ancora veloce:
create unique nonclustered index IX_MiniProfilers_Id on MiniProfilers (Id)
Spero che questo aiuti.
Aggiornamento
Il cambiamento per supportare SQL Azure è stato fornito come Pull Request e accettato. Grazie Jarrod.
ho trovato l'interfaccia IStorage nelle sorgenti del mini profiler, ma sembra non essere molto ben documentato. – NickD