2010-12-14 20 views
6

Tôi muốn có thể vẽ đồ thị cuộc gọi của một thủ tục được lưu trữ. Tôi không quan tâm đến từng chi tiết, và tôi không quan tâm đến SQL động (mặc dù nó sẽ rất thú vị để phát hiện nó và bỏ qua nó có thể hoặc đánh dấu nó như vậy.)Có công cụ miễn phí nào có thể giúp hình dung logic của một thủ tục được lưu trữ trong SQL Server 2008 R2 không?

Tôi muốn công cụ tạo ra một cây cho tôi, với tên máy chủ, tên db, tên proc được lưu trữ, "cây gọi", bao gồm:

  • Quy trình lưu trữ gốc.
  • Mọi thủ tục được lưu trữ khác đang được gọi là con của người gọi.
  • Mọi bảng đang được sửa đổi (cập nhật hoặc xóa khỏi) dưới dạng con của proc được lưu trữ.

Hy vọng rằng điều đó rõ ràng là tôi đang làm gì; nếu không - hãy hỏi. Nếu không có một công cụ có thể làm được điều này, thì tôi muốn tự mình viết một bản. Python 2.6 là ngôn ngữ của tôi lựa chọn, và tôi muốn sử dụng các thư viện chuẩn càng nhiều càng tốt. Bất kỳ đề xuất?

CHỈNH SỬA: Vì mục đích tiền thưởng Cảnh báo: Cú pháp SQL là COMPLEX. Tôi cần một cái gì đó có thể phân tích tất cả các loại SQL 2008, ngay cả khi nó trông ngu ngốc. Không có trường hợp góc nào bị chặn :)

EDIT2: Tôi sẽ không sao nếu tất cả những gì tôi thiếu là đồ họa.

Trả lời

7

** Tôi vừa mới nhận ra rằng bạn có thể đang tìm thư viện Python có thể thực hiện việc này cho bạn. Nếu vậy, tôi xin lỗi vì câu trả lời dud lol, nhưng nếu bạn đang cố gắng hình dung một DB để bạn có thể thực hiện bảo trì, thì câu trả lời của tôi là như nhau :) **

Nó không miễn phí, nhưng tôi đảm bảo với bạn SQL Dependency Tracker từ RedGate cũng đáng để kiếm tiền. Nó tạo ra một đồ thị như bạn đang mô tả, cho phép bạn xem tất cả những người tham gia trong mọi thủ tục, chìa khóa, xem, kích hoạt, vv Phần mềm tuyệt vời: http://www.red-gate.com/products/sql-development/sql-dependency-tracker/

Tôi biết bạn đã nói miễn phí, nhưng tôi cũng vậy thuyền như bạn vài năm trước và nhìn khá một chút cho một cái gì đó mà có thể làm công việc, miễn phí hay không. Cho đến khi tôi tìm thấy phần mềm này, không có gì khác có thể làm những gì tôi cần. Tôi mạnh mẽ khuyến khích bạn tìm tiền cho công cụ này nếu bạn cần phải làm điều này loại một cách thường xuyên.

+0

Chi phí là bao nhiêu? Và họ có thời gian dùng thử không? –

+0

~ $ 300. Dùng thử miễn phí trong 14 ngày. Tôi đã không tìm thấy một công cụ nào khác thực hiện điều này. Tôi tìm thấy một số có thể tạo ra các sơ đồ bằng cách theo dõi các mối quan hệ giữa các bảng, nhưng đó là nơi chúng dừng lại. Không có công cụ nào khác thực sự đọc mã từ thủ tục/chức năng xem/lưu trữ để xây dựng đồ thị phụ thuộc, đó là những gì tôi cần vì tôi đang tìm cách loại bỏ các khung nhìn trùng lặp, SP, v.v ... đã bắt đầu làm lộn xộn DB của tôi. Điều này làm cho nó cho khá nhiều loại đối tượng trên máy chủ. –

+0

Tôi thấy bạn vẫn đang tìm kiếm câu trả lời cho câu trả lời này. Dependency Tracker dường như có thể xuất dưới dạng XML. Mặc dù tôi không thể nói chắc chắn rằng xml sẽ trông như thế nào, một người dùng khác dường như đã tìm thấy giải pháp để nhận phụ thuộc duy nhất: http://www.red-gate.com/messageboard/viewtopic.php?p=25396 # 25396 Hỗ trợ của họ cũng đề cập đến việc xuất danh sách phụ thuộc ở định dạng PDF cho mục đích báo cáo: http://www.red-gate.com/supportcenter/Content?p=SQL%20Dependency%20Tracker&c=SQL_Dependency_Tracker/help/2.4/SDT_ExportingDependencyList.htm&toc = SQL_Dependency_Tracker/help/2.4/toc279529.htm –

0

Bạn có thể sử dụng SQL Server Management Studio để hiển thị kế hoạch truy vấn thực tế hoặc ước tính. Nó cung cấp một đầu ra đồ họa mà bạn có thể làm theo. Dưới đây là một mồi nhỏ: http://www.mssqltips.com/tip.asp?tip=1873

Cập nhật:

Bạn có thể sử dụng SQL Server Integration Services (SSIS) để tạo ra các chất chiết xuất dữ liệu trong một thời trang đồ họa. Bạn cũng có thể sử dụng Microsoft Biztalk Server để tạo các bố cục đồ họa phức tạp cũng trích xuất dữ liệu. Cuối cùng, bạn có thể sử dụng WF của Microsoft để tạo các quy trình tự động theo kiểu đồ họa có thể thực hiện các chức năng tương tự như Biztalk. Than ôi, đây không phải là miễn phí :(Nếu bạn có một thuê bao MSDN họ :)

Biztalk Bản đồ:. http://geekswithblogs.net/images/geekswithblogs_net/Chilberto/WindowsLiveWriter/BizTalkMapComparisonbetweenTableLoopinga_B5B9/image_6.png

+0

Cảm ơn bạn, điều này có vẻ giống như một sự khởi đầu. Câu hỏi này có một tiền thưởng trên nó, vì vậy tôi muốn hỏi - làm thế nào tôi sẽ tự động trích xuất dữ liệu tôi cần từ kế hoạch thực hiện truy vấn bằng cách sử dụng một số loại kịch bản? Có cách nào để tự động chạy kế hoạch thực thi truy vấn không? –

+0

Hmm, kế hoạch thực thi truy vấn không thực sự được thiết kế để trở thành công cụ trích xuất dữ liệu, nó thực sự được sử dụng để chỉ cho bạn những bước mà SQL Phục vụ r đã thực hiện khi chạy truy vấn. Bạn có thể lưu kế hoạch thực hiện (menu chuột phải). http://msdn.microsoft.com/en-us/library/ms190646.aspx –

0

SQL Negotiator Pro có một phiên bản lite miễn phí tại www.aphilen.com Các đầy đủ Phiên bản là sản phẩm duy nhất hiện có mà sẽ tìm thấy tất cả các phụ thuộc và không dừng lại sau khi tìm phụ thuộc 10 con đầu tiên.Các sản phẩm khác thất bại khi có một tham chiếu vòng tròn và chỉ treo, những kẻ đã bảo hiểm này. Ngoài ra một tính năng gọn gàng là khả năng thêm ghi chú vào biểu đồ để nó có thể dễ dàng phân phối. Phiên bản đầy đủ không phải là rẻ nhưng đã tiết kiệm cho chúng tôi rất nhiều giờ thường đòi hỏi phải tìm ra các thủ tục cơ sở dữ liệu phức tạp. đỉnh cũng cung cấp một công cụ gọn gàng