Bir MS SQL veritabanında birbiriyle ilişkili saklı yordamlardan oluşan dev bir webin belgelenmesi: Hangi araç veya biçim?


11

Umarım bu "1000 sayfalık bir kitap okuyun" dan daha kısa cevaplı bir sorudur, ama sonra, eğer gerçek durum buysa, o zaman bana vur.

Gerçek bir DBA değilim, bir DBA'ya ihtiyacımız olduğunu fark eden bir yazılım geliştiricisiyim, ancak çalıştığım dükkanın sıfır DBA'sı var. Ancak, birkaç temel saklı yordam içeren MS SQL veritabanı tasarımımız dev bir karışıklıktır. Saklı yordamlar yavaştır, hatalarının olduğundan şüpheleniriz, ancak nasıl çalışacaklarını bile bilmiyoruz, bu yüzden bunları nasıl düzelteceğimizi bilmiyoruz.

Başlangıç ​​olarak, tüm işlerin nasıl yapıldığını belgeleyeceğimize karar verdim, daha sonra birim testine başlayacağız ve saklı prosedürlerin gerçekten işe yaradığını kanıtlamaya yardımcı olacak bir dizi birim testi oluşturacağız. Yaptıkları mantık uygulamamızın önemli bir parçası, diyebiliriz ki, bu şirketimizin ana ürününün "taç mücevherleri" ve çalışma şekli tamamen belgelenmemiş.

Profesyonel bir DBA'nın, birbirlerini çağıran dev bir saklı yordamlar ağını anlamak için var olmasını bekledikleri veya gerekiyorsa kendilerini yazabilecekleri belirli teknik belgeleri arıyorum.

  1. Büyük bir saklı yordamı belgelemek için normal biçim nedir? Her In Parametresi için beklenen değerlerin açıklaması (örn. "Önkoşullar", "postkoşullar", yani, boole parametreleri için, açtığınızda veya kapattığınızda ne değişir?)

  2. Kişi bunu nasıl belgeliyor? Sadece SQL yorumları mı? Amaca özel harici takımlar mı? Harici "dokümantasyon" mu? MS SQL Management stüdyosu dışında hiçbir SQL aracımız yok, ancak ortamımızı daha iyi anlamak, belgelemek ve test etmek için bir araç olup olmadığını merak ediyoruz. Belki de bu sorumu sormanın daha iyi bir yoludur; Dağınıklığımızı çözmek için hangi araca ihtiyacım var?

Hedefimiz:

C. Prosedürlerin nasıl çalışması gerektiğini anlamak için oluşturduğumuz belgeleri veya çevremize eklediğimiz araçları kullanın, böylece depolanmış prosedürler için birim testi kapsamı oluşturabiliriz.

B. İstemci uygulama geliştiricilerine bu karmaşık saklı yordamların her birini nasıl doğru şekilde çağıracaklarını gösterin.

C. Birim prosedürlerimizi saklayın.

Yanıtlar:


4

Belgeleme ile ilgili en önemli şey, sizin için anlamlı olmasıdır. Bunu yapmanın standart bir yolu yok.

Her prosedür için bir nesne ile bir Visio diyagramı ile başlayarak birbirine bağlanan çok sayıda saklı prosedürünüz varsa, o zaman aralarındaki bağlantılar, prosedürden prosedüre nasıl geçileceğini izleyebilmeniz için muhtemelen oldukça iyi bir başlangıçtır.


4

RedGate SQL Bağımlılık Tracker aracı yararlı olabilir. Grafiksel olarak hangi veritabanı nesnelerinin (SP'ler / görünümler / tablolar) birbirine bağlı olduğunu gösterebilir. Kısıtlamaları devre dışı bırakma sırasını belirlemek için bilmediğim bazı tablolarla çalışırken kullandım.

Ben de sadece eğlence için tüm veritabanında koştu ve yol TMI oldu. DB'nin çılgın bağımlı olmayan belirli alanlarına odaklanabiliyorsanız, yardımcı olabilir. Bağımlılık ağacı, farklı algoritmalar kullanarak kendini görsel olarak organize etme seçeneklerine sahiptir ve bu sadece bir değerlendirmeyi değerli kılar.

İzleme. Başka bir seçenek de kritik saklı yordamların başlangıcına ve sonuna günlük satırları yazmaktır. Her satır bir tarih, bir "ayrıntı düzeyi", en iyi tahmin edilen "bağlam", "alt bağlam", proc adı içerebilir. ve satır sayısı. Muhtemelen bir karışıklık olacaktır (windows olay günlüğünü düşünün), ancak bazı bölümlerde yararlı olabilir. Günlük ekini yapmak için bir SP kullanılıyorsa ve daha fazla ek yük (ymmv) olmadan kolayca açılıp kapatılabilir.

Yan not, bir keresinde yazıcıya serin 11 x 17 kağıt yükledim, güzel bir küçük yazı tipi ve bazı sahte SQL'lerin ~ 5 sayfasına karmaşık bir veri / SP akışını özetlemek için bazı mantıksal girinti buldum. Ben sadece birkaç kez atıfta sona erdi eminim ve standart değildi ve entegre bir şey güvenmek zor ve güncel olmayan alabilirsiniz başka hiç kimse onun yanında gitmek cesaret. Belgeleme süreci, koda aşina olmaya zorladı!


Bunu ve diğer araçları değerlendirdim. Şimdiye kadar hala elle yapıyorum. Böylece yaptığım şeyi yansıtan yanıtı kabul ettim. Ama bu harika.
Warren P

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.