Ответ 1
Я только что настроил MiniProfiler, чтобы сохранить результаты в SQL Azure, это довольно просто. Мы используем MiniProfiler.MVC3, чтобы позаботиться обо всех проводках, как описано .
Таблица create script встроена в сборку со статическим полем SqlServerStorage.TableCreationScript
, поэтому вы можете использовать это, но пока копаясь в коде, я обнаружил, что последняя ветвь развития немного улучшила script, добавив некоторые индексы. Структура таблицы в остальном не изменилась, поэтому она по-прежнему работает с последним пакетом, доступным на nuget.
На момент написания вот прямая ссылка в последнюю таблицу create script.
После этого вам нужно только установить MiniProfiler для использования SQL с одной строкой кода:
MiniProfiler.Settings.Storage = new SqlServerStorage("<your connection string>");
Если вы не используете SQL Azure, это, но я нашел одну проблему, когда мы попытались использовать ее в Azure. Я получил следующее исключение (спасибо ELMAH), когда профилирование попыталось сохранить:
System.Data.SqlClient.SqlException
Таблицы без кластерного индекса не поддерживаются в этой версии SQL Server. Создайте кластерный индекс и повторите попытку.
Чтобы решить эту проблему, мне пришлось добавить дополнительный (неиспользуемый) столбец в таблицу MiniProfilers
. Вот начало таблицы create script:
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,
И поскольку столбец Guid Id больше не является основным ключом, я добавил дополнительный индекс, чтобы гарантировать, что поисковые запросы все еще бывают быстрыми:
create unique nonclustered index IX_MiniProfilers_Id on MiniProfilers (Id)
Надеюсь, что это поможет.
Обновление
Изменение поддержки SQL Azure было предоставлено как Pull Request и принято. Спасибо Jarrod.