Gambaran Umum (SMO)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

SQL Server Management Objects (SMO) adalah objek yang dirancang untuk manajemen terprogram Microsoft SQL Server. Anda dapat menggunakan SMO untuk membangun aplikasi manajemen SQL Server yang disesuaikan. Meskipun SQL Server Management Studio adalah aplikasi yang kuat dan luas untuk mengelola SQL Server, mungkin ada kalanya Anda akan lebih baik dilayani oleh aplikasi SMO.

Misalnya, aplikasi pengguna yang mengontrol tugas manajemen SQL Server mungkin harus disederhanakan untuk memenuhi kebutuhan pengguna baru dan untuk mengurangi biaya pelatihan. Anda mungkin harus membuat database SQL Server yang disesuaikan, atau membuat aplikasi untuk membuat dan memantau efisiensi indeks. Aplikasi SMO mungkin juga digunakan untuk menyertakan perangkat keras atau perangkat lunak pihak ketiga dengan mulus ke dalam aplikasi manajemen database.

Karena SMO kompatibel dengan SQL Server 2005 (9.x) dan versi yang lebih baru, Anda dapat dengan mudah mengelola lingkungan multi-versi.

Fitur dalam SMO meliputi hal-hal berikut:

  • Model objek cache dan pembuatan instans objek yang dioptimalkan. Objek hanya dimuat saat direferensikan. Properti objek hanya dimuat sebagian saat objek dibuat. Objek dan properti yang tersisa dimuat saat direferensikan secara langsung.

  • Eksekusi batch pernyataan Transact-SQL. Pernyataan di-batch untuk meningkatkan performa jaringan.

  • Tangkap pernyataan Transact-SQL. Memungkinkan operasi apa pun ditangkap ke dalam skrip. Management Studio menggunakan kemampuan ini untuk membuat skrip operasi alih-alih segera menjalankannya.

  • Manajemen layanan SQL Server dengan Penyedia WMI. Layanan SQL Server dapat dimulai, dihentikan, dan dijeda secara terprogram.

  • Pembuatan Skrip Tingkat Lanjut. Skrip Transact-SQL dapat dihasilkan untuk membuat ulang objek SQL Server yang menjelaskan hubungan dengan objek lain pada instans SQL Server.

  • Penggunaan Nama Sumber Daya Unik (URL). URN memungkinkan Anda membuat instans dan mereferensikan objek SMO.

SMO juga mewakili sebagai objek baru atau properti banyak fitur dan komponen yang diperkenalkan di SQL Server 2005 (9.x). Fitur dan komponen baru ini mencakup hal-hal berikut:

  • Partisi tabel dan indeks untuk penyimpanan data pada skema partisi. Untuk informasi selengkapnya, lihat Tabel dan Indeks yang Dipartisi.

  • Titik akhir HTTP untuk mengelola permintaan SOAP. Untuk informasi selengkapnya, lihat Menerapkan Titik Akhir.

  • Isolasi rekam jepret dan penerapan versi tingkat baris untuk meningkatkan konkurensi. Untuk informasi selengkapnya, lihat Bekerja dengan Isolasi Rekam Jepret.

  • Pengumpulan Skema XML, indeks XML, dan jenis data XML menyediakan validasi dan penyimpanan data XML. Untuk informasi selengkapnya, lihat Koleksi Skema XML (SQL Server) dan Menggunakan Skema XML.

  • Rekam jepret database untuk membuat salinan database baca-saja.

  • Dukungan Service Broker untuk komunikasi berbasis pesan. Untuk informasi selengkapnya, lihat Broker Layanan SQL Server.

  • Dukungan sinonim untuk beberapa nama objek database SQL Server. Untuk informasi selengkapnya, lihat Sinonim (Mesin Database).

  • Manajemen Email Database yang memungkinkan Anda membuat server email, profil email, dan akun email di SQL Server. Untuk informasi selengkapnya, lihat Email Database.

  • Dukungan Server Terdaftar untuk mendaftarkan informasi koneksi. Untuk informasi selengkapnya, lihat Mendaftarkan Server.

  • Melacak dan memutar ulang peristiwa SQL Server. Untuk informasi selengkapnya, lihat SQL Server Profiler, SQL Trace, SQL Server Distributed Replay, dan Extended Events.

  • Dukungan untuk sertifikat dan kunci untuk kontrol keamanan. Untuk informasi selengkapnya, lihat Hierarki Enkripsi.

  • Pemicu DDL untuk menambahkan fungsionalitas saat peristiwa DDL terjadi. Untuk informasi selengkapnya, lihat Pemicu DDL.

Namespace layanan SMO adalah Microsoft.SqlServer.Management.Smo. SMO diimplementasikan sebagai rakitan Microsoft .NET Framework. Ini berarti bahwa runtime bahasa umum dari Microsoft .NET Framework versi 2.0 harus diinstal sebelum menggunakan objek SMO. Rakitan SMO diinstal secara default ke dalam Global Assembly Cache (GAC) dengan opsi SQL Server SDK. Rakitan terletak di C:\Program Files\Microsoft SQL Server\130\SDK\Assemblies. Untuk informasi selengkapnya, lihat dokumentasi Visual Studio .NET Framework.

Kelas SMO

Kelas SMO mencakup dua kategori: kelas instans dan kelas utilitas.

Kelas Instans

Kelas instans mewakili objek SQL Server seperti server, database, tabel, pemicu, dan prosedur tersimpan. Kelas ServerConnection ini digunakan untuk membuat koneksi ke instans SQL Server dan mengontrol mode pengambilan perintah yang dikirim ke dalamnya.

Objek instans SMO membentuk hierarki yang mewakili hierarki server database. Di bagian atas adalah instans SQL Server, di mana adalah database, dan mengikuti dengan tabel, kolom, pemicu, dan sebagainya. Jika logis bahwa ada hubungan satu induk ke banyak anak, seperti tabel yang memiliki satu atau beberapa kolom, maka anak diwakili oleh kumpulan objek. Jika tidak, anak diwakili oleh satu objek.

Kelas Utilitas

Kelas utilitas adalah sekelompok objek yang telah dibuat secara eksplisit untuk melakukan tugas tertentu. Mereka telah dibagi menjadi hierarki objek yang berbeda berdasarkan fungsi:

  • Kelas transfer. Ini digunakan untuk mentransfer skema dan data ke database lain.

  • Kelas Pencadangan dan Pemulihan. Ini digunakan untuk mencadangkan dan memulihkan database.

  • Kelas Scripter. Ini digunakan untuk membuat file skrip untuk regenerasi objek dan dependensinya.

Fitur SMO

Performa yang Dioptimalkan

Arsitektur SMO efisien dalam hal memori karena objek hanya diinstansiasi sebagian pada awalnya, dan informasi properti minimal diminta dari server. Instansiasi penuh objek tertunda hingga objek direferensikan secara eksplisit. Objek sepenuhnya dibuat ketika properti diminta yang tidak berada dalam kumpulan properti yang pertama kali diambil, atau ketika metode dipanggil yang memerlukan properti seperti itu. Transisi antara objek yang diinstansiasi sebagian dan sepenuhnya dibuat transparan bagi pengguna. Selain itu, beberapa properti yang menggunakan banyak memori tidak pernah diambil, kecuali properti dirujuk secara eksplisit. Contohnya adalah Size properti properti Database objek. Namun, instansiasi parsial memang memerlukan lebih banyak perjalanan pulang pergi jaringan dan mungkin bukan opsi berkinerja terbaik untuk aplikasi Anda.

Anda dapat mengontrol instansiasi agar sesuai dengan lingkungan sistem. Mengandalkan instansiasi yang tertunda meminimalkan jumlah memori yang diperlukan oleh aplikasi, meskipun mungkin memicu banyak permintaan server ketika properti direferensikan.

Kelas instans, objek yang mewakili objek database nyata, dapat ada dalam tiga tingkat instans. Ini adalah instansiasi minimal (hanya properti minimal yang diperlukan yang dibaca dalam satu blok), sebagian dibuat (semua properti yang menggunakan jumlah memori yang relatif besar dibaca dalam satu blok), dan sepenuhnya dibuat. Tidak terinstansiasi dan sepenuhnya dibuat adalah status tradisional dari instansiasi. Status yang dibuat sebagian meningkatkan efisiensi karena objek yang diinstansiasi sebagian tidak berisi nilai untuk serangkaian properti objek lengkap. Instansiasi parsial adalah status default untuk objek yang tidak dirujuk secara langsung. Ketika salah satu properti ini dirujuk, kesalahan dihasilkan yang meminta instansiasi penuh objek.

Tangkap Eksekusi

Eksekusi langsung adalah metode eksekusi yang biasa. Pernyataan dikirim ke instans SQL Server secara langsung saat dikeluarkan. Menangkap eksekusi adalah alternatif untuk ini.

Eksekusi pengambilan memungkinkan Anda menangkap batch Transact-SQL yang biasanya akan dijalankan. Ini memungkinkan pemrogram SMO menunda skrip, menyimpannya untuk eksekusi nanti, atau memberikan pratinjau untuk pengguna akhir. Misalnya, buat database, buat tabel, dan buat pernyataan indeks dapat dikirim dalam satu batch lalu dijalankan sebagai tiga langkah berurutan. Fungsionalitas ini dikontrol oleh pengguna dengan menggunakan Server objek .

Penyedia VMI

Objek Penyedia WMI dibungkus oleh SMO. Ini menyediakan pemrogram SMO dengan model objek sederhana yang mirip dengan kelas SMO dengan cermat, tanpa persyaratan untuk memahami model pemrograman yang diwakili oleh namespace layanan dan detail Penyedia WMI SQL Server. Penyedia WMI memungkinkan Anda mengonfigurasi layanan SQL Server, alias, dan pustaka jaringan klien dan server.

Scripting

Di SMO, pembuatan skrip telah ditingkatkan dan dipindahkan ke kelas Scripter . Kelas Scripter dapat menemukan dependensi, memahami hubungan antara objek, dan memungkinkan manipulasi dependensi-hierarki. Objek pembuatan skrip utama adalah objek Scripter . Ada juga beberapa objek pendukung yang menangani dependensi dan menanggapi peristiwa kemajuan atau kesalahan.

Objek Scripter mendukung opsi pembuatan skrip tingkat lanjut berikut:

  • Pembuatan skrip 1 fase sederhana (membuat skrip dalam satu langkah)

  • Pembuatan skrip fase 3 tingkat lanjut (membuat skrip dalam tiga langkah; penemuan dependensi, pembuatan daftar, pembuatan skrip)

  • Penemuan dependensi dua arah (memungkinkan penemuan dependensi, atau dependen)

  • Respons terhadap peristiwa kemajuan

  • Respons terhadap peristiwa kesalahan

Nama Sumber Daya Unik

Konsep utama dalam menggunakan pustaka objek SMO adalah Nama Sumber Daya Unik (URN). URN menggunakan sintaksis yang mirip dengan XPath. XPath adalah jalur hierarki yang digunakan untuk menentukan objek di mana setiap tingkat memiliki kualifikasi dan fungsi. Di SMO, URN memiliki dua elemen, jalur dan penamaan atribut yang memiliki fungsionalitas terbatas. Jalur digunakan untuk menentukan lokasi objek sedangkan penamaan atribut memungkinkan tingkat pemfilteran.

Contoh URN untuk database adalah

/Server/Database[@Name='AdventureWorks2022']  

URN objek dapat diambil dengan merujuk properti URN-nya. Objek Scripter juga menggunakan URL sebagai parameter yang meneruskan referensi objek ke metode objek Scripter . Selain itu, URN dapat ditentukan untuk metode GetSmoObject objek Server . Ini digunakan untuk membuat instans objek SMO.

Fitur SQL Server Diwakili dalam SMO

Pemartisian Tabel dan Indeks

Pemartisian Tabel Indeks memungkinkan Anda mengelola penyebaran data dalam tabel dan indeks di seluruh grup file. Fitur baru ini diwakili oleh objek SMO.

Endpoint

Permintaan pencerminan SOAP dan database ditangani oleh titik akhir menggunakan Endpoint objek .

Isolasi Rekam Jepret/Penerapan Versi Tingkat Baris

Isolasi Rekam Jepret (penerapan versi tingkat baris) diwakili oleh properti objek baru Database .

Namespace Layanan Skema XML, Indeks XML, dan tipe data XML

Namespace Skema XML diwakili dalam SMO oleh kumpulan objek. Indeks XML diwakili dalam SMO oleh properti objek Indeks .

Penyempurnaan Pencarian Teks Lengkap

Objek baru disediakan dalam SMO yang mewakili penyempurnaan untuk pencarian teks lengkap.

Verifikasi Halaman

Objek PageVerify mewakili opsi verifikasi halaman database.

Database Rekam Jepret

Database rekam jepret adalah salinan baca-saja dari database tertentu sebagai titik waktu tertentu. Database rekam jepret dapat ditentukan dengan menggunakan IsDatabaseSnapshot properti Database objek.

Service Broker

Service Broker dan fungsionalitasnya diwakili oleh sekelompok objek

Penyempurnaan Indeks

Penyempurnaan indeks SQL Server diwakili oleh properti baru dalam Index objek.

Lihat Juga

Konsep Objek Manajemen Replikasi