Tôi vừa thiết lập MiniProfiler để lưu kết quả vào SQL Azure, nó khá dễ dàng. Chúng tôi đang sử dụng MiniProfiler.MVC3 để xử lý tất cả các hệ thống dây điện như mô tả here.
Kịch bản tạo bảng được nhúng vào assembly với trường tĩnh SqlServerStorage.TableCreationScript
, vì vậy bạn có thể sử dụng, nhưng trong khi đào sâu vào mã tôi thấy chi nhánh phát triển mới nhất đã tăng cường kịch bản một chút bằng cách thêm một số chỉ mục. Cấu trúc bảng không thay đổi, do đó nó vẫn hoạt động với gói mới nhất có sẵn trên nuget.
Tại thời điểm viết here is direct link vào bảng mới nhất tạo tập lệnh.
Sau đó điều duy nhất bạn cần làm là thiết lập MiniProfiler sử dụng SQL với dòng mã:
MiniProfiler.Settings.Storage = new SqlServerStorage("<your connection string>");
Nếu bạn không sử dụng SQL Azure, đó là nó, nhưng tôi tìm thấy một vấn đề khi chúng tôi cố gắng sử dụng nó trong Azure. Tôi nhận được ngoại lệ sau đây (cảm ơn bạn ELMAH) khi profiling cố gắng tiết kiệm:
System.Data.SqlClient.SqlException
Bàn mà không có một nhóm chỉ số không được hỗ trợ trong phiên bản này của SQL Server. Vui lòng tạo chỉ mục nhóm và thử lại.
Để giải quyết vấn đề này, tôi phải thêm cột bổ sung (chưa sử dụng) vào bảng MiniProfilers
. Đây là sự khởi đầu của tạo bảng kịch bản trong câu hỏi:
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,
Và kể từ cột Id Guid đã không còn là khóa chính, tôi đã thêm một chỉ số bổ sung để đảm bảo tra cứu vẫn còn nhanh:
create unique nonclustered index IX_MiniProfilers_Id on MiniProfilers (Id)
Hy vọng rằng sẽ giúp.
Cập nhật
Sự thay đổi để hỗ trợ SQL Azure đã được cung cấp như một Pull Request và chấp nhận. Cảm ơn Jarrod.
tôi đã tìm thấy giao diện IStorage trong các nguồn trình thu nhỏ, nhưng có vẻ như không được ghi chép đầy đủ. – NickD