Tài liệu về một trang web khổng lồ về các thủ tục được lưu trữ liên quan đến nhau trong cơ sở dữ liệu MS SQL: Công cụ hoặc định dạng nào?


11

Tôi hy vọng đây là một câu hỏi có câu trả lời ngắn hơn "Đọc một cuốn sách 1000 trang", nhưng sau đó, nếu đó là tình huống thực tế, thì hãy đánh tôi với nó.

Tôi không phải là một DBA thực sự, tôi là một nhà phát triển phần mềm đang nhận ra rằng chúng tôi cần một DBA, và cửa hàng tôi làm việc không có DBA nào. Tuy nhiên, thiết kế cơ sở dữ liệu MS SQL của chúng tôi bao gồm một số thủ tục lưu trữ lõi, là một mớ hỗn độn khổng lồ. Các thủ tục được lưu trữ rất chậm, chúng tôi nghi ngờ chúng có lỗi, nhưng chúng tôi thậm chí không biết chúng sẽ hoạt động như thế nào, vì vậy chúng tôi không biết cách khắc phục chúng.

Khi bắt đầu, tôi đã quyết định sẽ ghi lại cách thức hoạt động của tất cả mọi thứ, sau đó chúng tôi sẽ bắt đầu thử nghiệm đơn vị và xây dựng một bộ thử nghiệm đơn vị giúp chứng minh rằng các quy trình được lưu trữ thực sự hoạt động. Logic mà họ thực hiện là một phần quan trọng trong ứng dụng của chúng tôi, bạn có thể nói, đó là "viên ngọc quý" của sản phẩm chính của công ty chúng tôi và cách thức hoạt động của nó hoàn toàn không có giấy tờ.

Tôi đang tìm tài liệu kỹ thuật cụ thể mà một DBA chuyên nghiệp có thể mong đợi tồn tại hoặc có thể tự viết, nếu họ phải, để hiểu một mạng lưới lớn các thủ tục được lưu trữ gọi cho nhau.

  1. Các định dạng thông thường để ghi lại một thủ tục lưu trữ lớn là gì? Mô tả các giá trị dự kiến ​​cho từng Tham số (nghĩa là "điều kiện tiên quyết", "điều kiện hậu", tức là, đối với tham số boolean, điều gì sẽ thay đổi khi bạn bật hoặc tắt, v.v.?)

  2. Làm thế nào để một người thường tài liệu nó? Chỉ nhận xét SQL? Công cụ bên ngoài đó là cụ thể cho mục đích? "Tài liệu" bên ngoài? Chúng tôi không có công cụ SQL, ngoài studio MS SQL Management, nhưng chúng tôi tự hỏi liệu có công cụ nào giúp hiểu, ghi chép và kiểm tra môi trường của chúng tôi tốt hơn không. Có lẽ đó là một cách tốt hơn để đặt câu hỏi của tôi; Tôi cần công cụ gì để giải quyết mớ hỗn độn của chúng tôi?

Mục tiêu của chúng tôi là có thể:

A. Sử dụng tài liệu chúng tôi tạo hoặc bất kỳ công cụ nào chúng tôi thêm vào môi trường của mình để giúp hiểu cách các quy trình được cho là hoạt động, do đó chúng tôi có thể tiếp tục tạo phạm vi kiểm tra đơn vị cho các quy trình được lưu trữ.

B. Chỉ cho nhà phát triển ứng dụng khách cách gọi đúng từng quy trình được lưu trữ phức tạp này.

C. Đơn vị kiểm tra các thủ tục lưu trữ của chúng tôi.

Câu trả lời:


4

Điều quan trọng nhất về tài liệu là nó có ý nghĩa với bạn. Không có cách thực sự tiêu chuẩn để làm điều này.

Nếu bạn có rất nhiều thủ tục được lưu trữ mà tất cả kết nối với nhau bắt đầu bằng sơ đồ Visio với một đối tượng cho mỗi thủ tục, thì các liên kết giữa chúng để bạn có thể theo dõi cách mọi thứ đi từ thủ tục đến thủ tục có lẽ là một khởi đầu khá tốt.


4

Các RedGate SQL phụ thuộc Tracker cụ có thể hữu ích. Nó có thể hiển thị cho bạn đồ họa các đối tượng cơ sở dữ liệu (SP / view / bảng) phụ thuộc vào nhau. Tôi đã sử dụng nó trong khi làm việc với một số bảng mà tôi không quen để xác định thứ tự để vô hiệu hóa các ràng buộc.

Tôi cũng chạy nó trên toàn bộ cơ sở dữ liệu chỉ để giải trí và đó là cách TMI. Nếu bạn có thể tập trung nó vào các khu vực cụ thể của DB không phụ thuộc lẫn nhau, điều đó có thể hữu ích. Cây phụ thuộc có các tùy chọn để tự tổ chức trực quan bằng các thuật toán khác nhau và chính điều đó làm cho một giá trị đáng giá.

Truy tìm. Một tùy chọn khác là viết các dòng nhật ký ở đầu và cuối của các thủ tục lưu trữ quan trọng. Mỗi hàng có thể bao gồm một ngày, một "mức độ chi tiết", một "bối cảnh" được đoán đúng nhất, "văn bản con", tên Proc. và hàng đếm. Nó có thể sẽ là một mớ hỗn độn (nghĩ nhật ký sự kiện windows) nhưng có lẽ hữu ích trong một số phần. Nếu một SP được sử dụng để thực sự chèn nhật ký và sau đó nó có thể được bật / tắt dễ dàng mà không cần tải thêm (ymmv).

Lưu ý bên lề, tôi đã từng tải máy in bằng giấy 11 x 17 thú vị, tìm thấy một phông chữ nhỏ xinh và một số thụt lề logic để tóm tắt một luồng dữ liệu / SP phức tạp vào ~ 5 trang của một số giả SQL. Tôi khá chắc chắn rằng tôi chỉ mới nhắc đến nó một vài lần và không ai dám đến gần nó vì nó không chuẩn và khó tin vào thứ gì đó không được tích hợp và có thể lỗi thời. Quá trình tài liệu đã buộc phải làm quen với mã mặc dù!


Tôi đã đánh giá điều này và một loạt các công cụ khác. Cho đến nay, tôi vẫn đang làm nó bằng tay. Do đó tôi chấp nhận câu trả lời phản ánh những gì tôi đã làm. Nhưng điều này là mát mẻ.
Warren P

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.