Kiểm tra khả năng mở rộng thủ tục lưu trữ


14

Tôi có một ứng dụng email sẽ được yêu cầu gửi đến UI số lượng tin nhắn mới cho một người dùng nhất định trên mỗi lần tải trang. Tôi có một vài biến thể của những thứ tôi đang thử nghiệm ở cấp độ DB nhưng tất cả đều được trừu tượng hóa bằng lệnh gọi được lưu trữ.

Tôi đang cố gắng đập DB để xem điểm dừng (số yêu cầu mỗi giây) sẽ là bao nhiêu.

Tóm lại, tôi có một bảng như userId này, newMsgCount với một chỉ mục được nhóm trên userId. SQL sẽ có thể lưu trữ hàng trăm hoặc hàng ngàn phản hồi này mỗi giây. Tôi nghĩ rằng laggard là ứng dụng .NET của tôi.

Làm cách nào tôi có thể biến điều này thành một bài kiểm tra tốt để đạt được kết quả kiểm tra dựa trên hiệu suất SQL?

Có một công cụ cho việc này mà tôi có thể đặt cho nó một tên Proc được lưu trữ và param cho nó để nạp DB của tôi không?

Tôi muốn xem DB có thể trả về một phút không. 250 phản hồi mỗi giây.


1
Câu hỏi tuyệt vời. Tôi sẽ mở rộng nó để tổng quát hơn một chút và hỏi: Làm thế nào để bạn tải kiểm tra cơ sở dữ liệu của bạn?
Nick Chammas

Câu trả lời:


11

SQLQueryStress là một công cụ tuyệt vời để kiểm tra đồng thời quy mô nhỏ nhưng nó không thực sự phụ thuộc vào công việc kiểm tra tải. Một bộ công cụ đáng ngạc nhiên ít được biết đến có sẵn miễn phí, từ Microsoft, có thể đối phó với hầu hết các kịch bản kiểm tra căng thẳng của SQL Server, RML Utility .

Một phác thảo rất ngắn gọn về các công cụ:

  • ReadTrace chuyển đổi dấu vết Profiler từ tệp .trc thành .rml (Phát lại ngôn ngữ đánh dấu).
  • OStress được sử dụng để phát lại các tệp .rml và .sql đối với máy chủ.
  • ORCA (OStress Replay Control Agent) phối hợp phát lại trên các phiên bản phân tán của OStress.
  • Phóng viên cung cấp các báo cáo phân tích hiệu suất.

Có một bài viết bắt đầu nhanh tuyệt vời từ nhóm SQLCat bao gồm cơ sở dữ liệu mẫu và khối lượng công việc, Hiệu suất chính xác cho Microsoft SQL Server bằng RML Utility 9.0

Bạn có tùy chọn Hoạt động cấu hình để phát lại hoặc, có thể phù hợp hơn trong kịch bản của bạn, xử lý một tập các tập lệnh .sql mà sau đó bạn phát lại qua OStress và ORCA.

Các công cụ tuyệt vời cho cả thử nghiệm tải và điều tra các vấn đề hiệu suất.


6

Một công cụ bạn có thể sử dụng là SQLQueryStress . Để bắt đầu nhanh cung cấp: thủ tục được lưu trữ các lần lặp và số lượng luồng. Sau đó bắt đầu thử nghiệm căng thẳng. Các số liệu như CPU ​​giây, đọc logic, v.v ... sẽ được hiển thị.


4

Âm thanh như bạn là một nhà phát triển .NET. Một cách là viết một ứng dụng nhỏ sử dụng đa luồng và chỉ cần một lượng truy cập đồng thời vào cơ sở dữ liệu và thủ tục được lưu trữ. Chạy một dấu vết trong khi điều này đang xảy ra.

Viết mã ứng dụng để tăng số lượng luồng đồng thời trên một khoảng thời gian cụ thể nếu bạn muốn tự động tăng tải trên SQL Server.

Đó là cách tôi sẽ đi về nó.


Tại sao bạn không viết ứng dụng này bằng cách sử dụng dự án nguồn mở Benchmark.NET của tôi và sử dụng điểm chuẩn song song?
Andrei Rînea
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.