Jadi, judulnya merangkumnya.
Saya punya database SQL Server dengan 28 tabel dan 86 prosedur tersimpan yang harus direkayasa balik. Saya cukup yakin bahwa beberapa tabel tidak pernah digunakan dan tidak semua procs digunakan juga.
Masalah terbesar adalah bahwa semua Layanan Windows yang dibuat untuk digunakan dengan DB ini dan semua perangkat lunak dan dokumentasi basis data hilang, dan orang yang merancang seluruh sistem tidak dapat ditemukan.
Saya sudah berhasil membuat diagram ER untuk membantu saya memahami hubungan, tetapi karena saya tidak berpengalaman dalam administrasi basis data, saya tidak tahu harus mulai dari mana.
Saya juga minta maaf jika pertanyaan semacam ini tidak dimaksudkan untuk ditanyakan di sini.
sql-server
documentation
Manusia_Setelah Semua
sumber
sumber
Jawaban:
Tiga langkah sangat cepat untuk memulai:
1)
Akan memberi tahu Anda kapan terakhir kali setiap indeks digunakan, termasuk indeks berkerumun. Jadi setidaknya memberi Anda rasa yang tabelnya sedang diakses (dan yang tidak.)
2) Aktifkan sesi Peristiwa Diperpanjang (atau jejak Profiler sisi server jika Anda menjalankan pra-SQL 2012) selama satu jam atau lebih saat aplikasi sedang digunakan. Anda juga dapat meminta pengguna untuk melakukan berbagai tindakan dalam aplikasi dalam urutan tertentu sehingga Anda dapat menghubungkannya dengan jejak / sesi.
Saran yang sangat membantu: jika Anda dapat memodifikasi string koneksi yang digunakan aplikasi sama sekali, tambahkan "; Nama Aplikasi = AppNameGoesHere" sehingga Anda dapat menjalankan pemfilteran jejak pada Nama Aplikasi tersebut. Latihan yang bagus.
3) Dapatkan versi aplikasi yang berfungsi pada server non-produksi. Kembangkan daftar tes yang didorong perilaku untuk aplikasi ("Ketika pengguna mengklik tombol Item Baru, itu menciptakan item baru untuk pengguna itu," dll.) Mulailah menghapus objek yang Anda rasa tidak ada hubungannya dengan tes dengan mengubah nama mereka (Saya menggunakan format seperti objectName_DEPRECATED_YYYYMMDD - dengan tanggal adalah hari saya berencana untuk benar-benar menghapusnya.) Verifikasi ulang semua tes Anda.
Melalui kombinasi sesi Peristiwa Diperpanjang, DMV penggunaan indeks, dan penghapusan lunak Anda, Anda harus dapat mengidentifikasi objek utama yang digunakan oleh aplikasi dan konsensus umum yang baik tentang objek mana yang melakukan apa.
Semoga berhasil!
sumber
Taruhan terbaik Anda untuk memulai adalah mendokumentasikan database Anda menggunakan SQL Power Doc
Catatan: Saya telah menggunakannya dan ini akan memberi Anda awal yang sangat baik dalam mendokumentasikan dan memahami contoh server database Anda.
sumber
New-Item -type directory -path "$([Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments))\WindowsPowerShell\Modules"
langkah itu padaSqlServerInventory ReadMe.txt
file. Saya tidak tahu di mana saya harus memasukkan jalur ke folder yang baru dibuat dan di mana saya harus memasukkan nama folder yang baru dibuat.Karena saya pernah berada dalam situasi yang sama, saya dapat memberitahu Anda bahwa ini akan menjadi pekerjaan yang sulit dan mustahil. Saya hanya memiliki kode sumber (> 100k baris kode), layanan yang berjalan, database yang berjalan (~ 50 tabel) dan tidak ada dokumentasi dan tidak ada yang bertanya tentang hal itu kecuali pengguna aplikasi ini dan salinan dari database dan layanan yang berjalan di lingkungan pengujian (yang beberapa nomor versi di depan tetapi tanpa kode sumber). Persyaratan lain adalah layanan harus dijalankan 24/7 karena mereka eksternal bagi pelanggan. Situasi muncul karena sebagian besar staf pergi pada waktu yang sama termasuk pengembang dan dokumentasi lenyap dalam kekacauan. Butuh lebih dari 6 bulan untuk mendapatkan gambaran umum / dokumentasi kasar. Ada banyak tabel dan fungsi yang tidak memiliki efek karena mereka untuk digunakan di masa depan atau tidak pernah sepenuhnya diimplementasikan, fitur yang salah atau usang atau tidak dirilis. Setelah 6 bulan saya harus menulis ulang dokumentasi karena saya menemukan hal-hal baru atau hubungan antara hal-hal dan saya memiliki asumsi yang salah sebelumnya.
Mengapa saya mengatakan ini? Karena kadang-kadang dalam situasi seperti itu lebih mudah dan lebih murah untuk memulai dari awal dan menulis aplikasi baru yang memenuhi persyaratan yang lama (atau yang baru jika mereka berubah dari waktu ke waktu atau Anda ingin rilis besar baru). Atau untuk memberi tahu Anda apa yang harus Anda harapkan.
Jika Anda benar-benar ingin merekayasa balik, saya akan merekomendasikan langkah-langkah berikut:
Semoga beruntung;)
sumber
Saya tidak memiliki cukup perwakilan untuk mengirim komentar tetapi ingin membantu dengan pertanyaan Anda tentang
getting the SQL Power Doc to work
.Jika Anda mengikuti langkah-langkah pada halaman dokumentasi mereka, itu akan bekerja dengan mudah. Mulai saja dari atas.
https://sqlpowerdoc.codeplex.com/wikipage?title=Guide%20For%20PowerShell%20Pemula
sumber