SEJARAH SQL SERVER 2005
SQL Server 2005 dirilis pada Oktober 2005,
adalah penerus ke SQL Server 2000. Ini termasuk dukungan asli untuk mengelola XML data, di samping data relasional . Untuk tujuan ini,
mendefinisikan sebuah
xml
tipe data yang dapat digunakan baik sebagai
tipe data dalam kolom database atau sebagai literal dalam query. Kolom XML dapat
dikaitkan dengan XSD schema, data XML yang disimpan adalah diverifikasi
terhadap skema. XML dikonversi ke tipe data biner internal sebelum disimpan
dalam database. Metode pengindeksan khusus dibuat tersedia untuk data XML.
Query data XML menggunakan XQuery ; Common Language Runtime (CLR) integrasi
fitur utama dengan edisi ini, memungkinkan seseorang untuk menulis kode SQL
sebagai Kode Dikelola oleh CLR.
SQL Server 2005 menambahkan beberapa
ekstensi untuk T-SQL bahasa untuk memungkinkan embedding query XQuery di
T-SQL. Di samping itu, juga mendefinisikan ekstensi baru untuk XQuery, yang disebut XML DML, yang memungkinkan
query berbasis modifikasi data XML. SQL Server 2005 juga memungkinkan server
database yang akan terkena lebih dari layanan web menggunakan Streaming Tabel data (TDS) dikemas dalam
paket SOAP (protokol) permintaan. Bila data yang
diakses melalui layanan web, hasilnya dikembalikan sebagai XML.
Untuk data relasional, T-SQL telah ditambah dengan fitur penanganan error (coba /
menangkap) dan dukungan untuk query rekursif dengan CTEs (Expressions Tabel
common). SQL Server 2005 juga telah ditingkatkan dengan algoritma pengindeksan
baru, sintaks dan kesalahan yang lebih baik sistem pemulihan. Halaman Data checksummed untuk ketahanan kesalahan yang lebih baik, dan
dukungan konkurensi optimis telah ditambahkan untuk performa yang lebih baik.
Izin dan kontrol akses telah dibuat lebih rinci dan prosesor menangani
permintaan eksekusi bersamaan query dengan cara yang lebih efisien. Partisi
pada tabel dan indeks yang didukung secara native, jadi scaling keluar database
ke sebuah cluster yang lebih mudah. SQL CLR diperkenalkan
dengan SQL Server 2005 untuk membiarkan hal itu mengintegrasikan dengan NET
Framework.
SQL Server 2005 memperkenalkan
"MARS" (Beberapa Aktif Hasil Set), sebuah metode yang memungkinkan
penggunaan koneksi database untuk beberapa tujuan.
SQL Server 2005 memperkenalkan DMVs (Dilihat
Manajemen Dinamis), yang pandangan khusus dan fungsi yang mengembalikan server
informasi negara yang dapat digunakan untuk memantau kesehatan contoh server,
mendiagnosa masalah, dan tune performa.
SQL Server 2005 Database Mirroring
diperkenalkan, tapi itu tidak sepenuhnya didukung sampai rilis pertama Service
Pack (SP1). Pada rilis awal (RTM) dari SQL Server 2005, mirroring database yang
tersedia, namun tidak didukung. Dalam rangka mengimplementasikan mirroring
database dalam versi RTM, Anda harus menerapkan melacak bendera 1400 pada saat
startup. Database mirroring adalah pilihan ketersediaan tinggi yang menyediakan
redundansi dan kemampuan failover pada tingkat database. Failover dapat
dilakukan secara manual atau dapat dikonfigurasi untuk failover otomatis.
Failover otomatis memerlukan mitra saksi dan modus operasi sinkron (juga
dikenal sebagai keamanan yang tinggi-keamanan atau penuh).
1. Pegertian SQL server 2005
Pada dasarnya pengertian dari SQL Server itu sendiri adalah
bahasa yang dipergunakan untuk mengakses data dalam basis data relation.
Bahasa ini secara defacto adalah bahasa standar yang digunakan
dalam manajemen basis data relasional. Saat ini hampir semua server basis data
yang ada mendukung bahasa ini dalam manajemen datanya. SQL server 2005
merupakan salah satu produk dari Relational Database Management System
(RDBMS).
2. Komponen SQL server 2005
SQL
Server 2005 terdiri atas beberapa komponen sebagai berikut:
a.
Relational Database Engine : komponen utama atau jantung SQL Server 2005.
b. Analysis
Services : Basis dari solusi intelijen bisnis yang ampuh (powerful), dan
mendukung aplikasi-aplikasi OLAP (online analytical processing), serta data
minning.
c. Data
Transformation Service (DTS): sebuah mesin untuk membuat solusi ekspor dan
impor data, serta untuk mentransformasi data ketika data tersebut ditransfer.
d. Notification Services:
sebuah framework untuk solusi dimana pelanggan akan dikirimi notifikasi ketika
sebuah event muncul.
e. Reporting
Services: service yang akan mengambil data dari SQL Server, dan menghasilkan
laporan-laporan.
f. Service
broker: sebuah mekanisme antrian yang akan menangani komunikasi berbasis pesan
diantara service.
g. Native
HTTP Support: dukungan yang memungkinkan SQL server 2005 yang (jika diinstall
pada Windows Server 2003) akan merespon request terhadap HTTP endpoint,
sehingga memungkinkan pembangunan sebuah web service untuk SQL Server tanpa
menggunakan IIS.
h. SQL
server Agent : akan mengotomatiskan perawatan database dan mengatur task, event
dan alert.
i.
NET CLR (Common Language Runtime): akan memungkinkan pembuatan solusi menggunakan
managed code yang ditulis dalam salah satu bahasa .NET.
j.
Replication: serangkaian teknologi untuk menjalin dan mendistribusikan data dan
obyek database dari sebuah database ke database lain, dan melakukan
sinkronisasi untuk menjaga konsistensinya.
k.
Full-Text Search: memungkinkan
pengindeksan yang cepat dan flexibel untuk query berbasis kata kunci (terhadap data teks yang
disimpan dalam database).
3. Fitur untuk Administrasi Database
ü Database Mirroring
Perluas log pengiriman kemampuan
dengan solusi mirroring database. Anda akan dapat menggunakan mirroring
database untuk meningkatkan ketersediaan sistem SQL Server Anda dengan
mendirikan failover otomatis ke server siaga.
ü Online Restore
Dengan SQL Server 2005, database
administrator dapat melakukan restore operasi sementara instance dari SQL
Server yang berjalan. Online mengembalikan meningkatkan ketersediaan SQL Server
karena hanya data yang dipulihkan tidak tersedia, sisa database tetap online
dan tersedia.
ü Online Indexing Operations
Opsi Indeks online memungkinkan
modifikasi concurrent (update, menghapus, dan menyisipkan) ke meja yang
mendasari atau data clustered index dan setiap indeks terkait selama data
indeks bahasa eksekusi (DDL) definisi. Sebagai contoh, sementara clustered
index sedang dibangun kembali, Anda dapat terus memperbarui data yang meBndasari
dan melakukan query terhadap data.
ü Fast Recovery
Sebuah pilihan pemulihan baru yang
lebih cepat meningkatkan ketersediaan database SQL Server. Administrator dapat
menyambung kembali ke database pulih setelah log transaksi telah diperpanjang
ke depan.
ü Standards-based Information Access
Setiap
objek, sumber data, atau komponen usaha intelijen bisa terkena menggunakan
protokol berbasis standar seperti SOAP dan HTTP-menghilangkan kebutuhan
pendengar yang tingkat menengah, seperti IIS, untuk mengakses antarmuka layanan
Web yang terkena oleh SQL Server 2005.
ü SQL Server Management Studio
SQL Server 2005 termasuk SQL Server
Management Studio, sebuah suite terintegrasi baru alat manajemen dengan fungsi
untuk mengembangkan, menyebarkan, dan atasi masalah database SQL Server, serta
perangkat tambahan untuk fungsi sebelumnya.
ü Dedicated Administrator Connection
SQL
Server 2005 menyediakan koneksi administrator administrator khusus yang dapat
digunakan untuk mengakses server yang menjalankan bahkan jika server terkunci
atau tidak tersedia. Kemampuan ini memungkinkan administrator untuk memecahkan
masalah pada server dengan menjalankan fungsi diagnostik atau pernyataan
Transact-SQL.
ü Snapshot Isolation
Snapshot
Isolasi (SI) tingkat disediakan pada tingkat database. Dengan SI, pengguna
dapat mengakses baris berkomitmen terakhir menggunakan pandangan transitionally
konsisten database. This capability provides greater scalability. Kemampuan ini
memberikan skalabilitas yang lebih besar.
ü Data Partitioning
Data
partisi ditingkatkan dengan tabel partisi asli dan indeks yang memungkinkan
pengelolaan efisien tabel besar dan indeks.
ü Replication Enhancements
Untuk
database terdistribusi, SQL Server 2005 menyediakan skema komprehensif
perubahan (DDL) replikasi, kemampuan pengawasan generasi berikutnya, dibangun
pada replikasi dari Oracle ke SQL Server, menggabungkan replikasi lebih dari
https, dan signifikan menggabungkan skalabilitas replikasi dan peningkatan
kinerja. Selain itu, peer-to-peer fitur replikasi transaksional meningkatkan
dukungan untuk skala data dengan menggunakan replikasi.
4. pengembangan database baru, dengan fictur
yang disediakan SQL server 2005
Fitur untuk Pengembang Database
v Hosted Common Language Runtime
Dengan
SQL Server 2005 pengembang dapat membuat objek database menggunakan bahasa
asing seperti Microsoft Visual C # NET dan. Microsoft Visual Basic. Pengembang
juga dapat membuat dua jenis benda-user-defined baru dan agregat.
v Native XML Support
Native
XML data dapat disimpan, tanya, dan diindeks dalam database SQL
Server-memungkinkan pengembang untuk membangun kelas baru sekitar tersambung
aplikasi layanan Web dan di setiap platform atau perangkat.
v ADO.NET version 2.0
Dari
dukungan baru untuk SQL Jenis untuk Hasil Multiple Set Aktif (MARS), ADO.NET di
SQL Server 2005 berkembang Dataset akses dan manipulasi untuk mencapai
skalabilitas dan fleksibilitas yang lebih besar.
v Security Enhancements Keamanan Perangkat Tambahan
Model
keamanan di SQL Server 2005 pengguna yang terpisah dari benda, menyediakan
akses-butiran halus, dan memungkinkan kontrol yang lebih besar akses data.
Selain itu, semua tabel sistem diimplementasikan sebagai pandangan, memberikan
kontrol lebih atas objek sistem database.
v Transact-SQL Enhancements
SQL
Server 2005 menyediakan kemampuan bahasa baru untuk mengembangkan aplikasi
database scalable. Peningkatan ini termasuk penanganan error, kemampuan query
rekursif, PIVOT operator relasional, BERLAKU, ROW_NUMBER dan fungsi baris
lainnya peringkat, dan banyak lagi.
v Reliable Messaging for Asynchronous
Applications
Layanan
Broker merupakan infrastruktur olahpesan kuat yang menyediakan pengiriman
transaksional yang dapat diandalkan pesan penting antara server-dengan kinerja
tinggi scalable-yang diharapkan dengan antrian asynchronous.
v Visual Studio Integration
Ketat integrasi dengan Microsoft
Visual Studio dan NET Framework. Pembangunan arus dan debugging aplikasi
berbasis data. Pengembang dapat membangun objek database, seperti prosedur yang
tersimpan, dengan menggunakan bahasa apapun. NET dan mulus bisa debug di. NET
dan Transact-SQL (TSQL) bahasa.
v Web Services
Dengan SQL Server 2005 pengembang
dapat mengembangkan layanan Web dalam database tier, membuat SQL Server
protokol transfer hypertext (HTTP) pendengar dan menyediakan sebuah tipe baru
kemampuan akses data untuk layanan-centric aplikasi Web.
v Embedded Reports
Gunakan
kontrol pelaporan sisi klien untuk laporan real-time embed ke aplikasi pada
saat desain.
v Full-Text Search Enhancements
SQL Server 2005 mendukung kaya,
aplikasi penuh-teks pencarian Katalogisasi kemampuan memberikan
fleksibilitas yang lebih besar atas apa yang di katalog. Query kinerja dan
skalabilitas telah meningkat secara dramatis, dan alat manajemen yang baru
memberikan wawasan yang lebih besar ke dalam implementasi teks lengkap.
5.
pengembang SQL server 2005 dan utilytas yang dapat digunakan untuk membangun
solusi database
a.
SQL Server Management Studio
Ini adalah lingkungan pengembangan utama untuk SQL Server
2005. Developers can use it to create database solutions containing all of the
scripts associated with a particular database. Pengembang dapat menggunakannya
untuk menciptakan solusi database yang berisi semua script yang berhubungan
dengan database tertentu. You can use this tool to create database applications
graphically, or you can create, execute, and save scripts. Anda dapat menggunakan
alat ini untuk membuat aplikasi database secara grafis, atau Anda dapat
membuat, mengeksekusi, dan menyimpan script.
b.
Business Intelligence evelopment Studio
Digunakan untuk membuat Analisis solusi Layanan.
c.
sqlcmd SQLCMD
SQLCMD adalah sebuah utilitas baris
perintah baru yang menggantikan isql dan osql. Hal ini memberikan
peningkatan fungsionalitas dan kinerja lebih dari pendahulunya.
d.
Visual Studio designers
SQL Server 2005 menyediakan sejumlah desainer yang
memperpanjang lingkungan Visual Studio dan membuatnya mudah untuk membangun SQL
Server 2005 item seperti laporan dan objek database dikelola.
PENGERTIAN SERVER
Sebuah server yang terhubung hanya koneksi
ke Object Linking dan Embedding Database (OLEDB) sumber data. Secara teknis,
OLEDB adalah Microsoft standar API untuk mengambil data dari berbagai macam
data. Kalau itu jelas sebagai lumpur, jangan khawatir. Kabar baiknya adalah
bahwa hal itu cukup fleksibel untuk link ke format database dan non-database,
seperti spreadsheet atau e-mail client. Sederhananya, SQL Server mendukung
setiap penyedia OLEDB (juga disebut driver). Ada berita bagus lainnya: Anda
dapat menggunakan Transact-SQL atau Management Studio untuk membuat koneksi.
Setelah Anda membuat sebuah server yang terhubung, SQL Server dapat login ke
database server lain. Itu berarti Anda dapat menjalankan query di server jauh.
Anda memiliki dua jenis server yang terhubung query Anda inginkan: ad hoc dan
permanen.
Ad hoc link
Secara teknis, Anda tidak akan menggunakan server
yang terhubung panjang untuk mengidentifikasi sebuah query ad hoc. Istilah
yang benar-benar mengacu ke objek SQL Server. Namun, Anda akan sering melihat
istilah yang digunakan untuk merujuk kepada sebuah permintaan ad hoc terkait.
Query ad hoc membuka dan menutup koneksi. Sebuah server yang terhubung permanen
selalu tersedia. Gunakan OPENROWSET untuk tugas-tugas terkait jarang terjadi,
dengan menggunakan sintaks berikut:
OPENROWSET ('providername', 'sumber data', 'username', 'password', objek)
Link OPENROWSET mengkonsumsi lebih sedikit
ruang dalam database Anda. Gunakan berlaku Transact-SQL untuk memanipulasi data
yang diambil. Argumen yang cukup jelas, tapi ingat bahwa sumber data
adalah jalan penuh sumber, bukan hanya nama file. Selain itu, penyedia
menyediakan petunjuk bahwa SQL Server perlu masuk dan mengambil data. Mereka
khusus untuk perangkat lunak asing Anda mengakses.
Sekarang, mari kita lihat query gadaian iklan sederhana yang memilih
semua record dari tabel Karyawan di database Access sampel Microsoft,
Northwind:
Gambar A menunjukkan hasil cepat
diambil, yang tergantung pada pengguna (admin) yang memiliki hak akses yang
sesuai. (Jika Anda ingin menjalankan query ini, pastikan untuk memperbarui
jalan ke Northwind.mdb untuk mengakomodasi sistem Anda.) Penyedia string adalah
khusus untuk mesin data, Jet. Kata kunci SEBAGAI memberikan nama untuk tabel
baru di dalam SQL Server.
Jika permintaan ad hoc kembali kesalahan,
Anda mungkin perlu untuk mengaktifkan fitur ad hoc query. (SQL Server
menonaktifkan secara default.) Untuk mengaktifkan ad hoc query, jalankan SQL
Server Configuration Manager (SQL Server Permukaan Kawasan Konfigurasi utilitas
dalam edisi Express). Klik Konfigurasi Permukaan Kawasan Untuk menghubungkan
Fitur dan memeriksa OPENROWSET Aktifkan Dan opendatasource Dukungan pilihan.
Kemudian, klik OK dan tutup utilitas. Atau, menjalankan prosedur yang tersimpan
sp_configure.
Permanen link
Objek server yang terhubung SQL Server menciptakan link permanen ke
server remote. Ketika user log in, SQL Server juga log ke remote server.
Langkah pertama untuk mengambil data asing melalui sebuah server yang terhubung
adalah untuk membiarkan SQL Server tahu bahwa Anda berencana untuk berbicara
dengan sumber lain (server).
Mengambil data
Setelah server yang terhubung ada, Anda
dapat menggunakannya untuk query data, sama seperti jika Anda bekerja dengan
tabel SQL Server hasil mengambil semua
catatan karyawan dari Northwind menggunakan pernyataan SQL melalui sebuah
server yang terhubung bernama NorthwindDemo.:
SELECT * FROM NorthwindDemo ... Karyawan
Ketika query data melalui server ExcelData terkait, termasuk kisaran
bernama sebagai berikut:
SELECT *
DARI ExcelData, Karyawan
Protokol lapisan
Mengimplementasikan protokol lapisan
antarmuka eksternal ke SQL Server. Semua operasi yang dapat dipanggil pada SQL
Server dikomunikasikan ke melalui format Microsoft-didefinisikan, disebut Tabel data Streaming (TDS). TDS adalah
lapisan protokol aplikasi, yang digunakan untuk mentransfer data antara
database server dan klien. Awalnya dirancang dan dikembangkan oleh Sybase Inc
untuk mereka Sybase SQL Server mesin database relasional
pada tahun 1984, dan kemudian oleh Microsoft di Microsoft SQL Server, TDS paket
dapat terbungkus dalam lain protokol transportasi fisik bergantung, termasuk TCP / IP , Bernama pipa , dan Bersama memori . Akibatnya, akses ke SQL Server
tersedia lebih dari protokol ini. Selain itu, SQL Server API juga terkena lebih
dari layanan web .
Penyimpanan Data
Unit utama dari penyimpanan data adalah basis data , yang merupakan koleksi dari tabel
dengan diketik kolom. SQL Server mendukung tipe data
yang berbeda, termasuk jenis utama seperti Integer, Float, Desimal,
Char (termasuk string karakter), varchar (panjang variabel string
karakter), biner (untuk terstruktur gumpalan data), Text (untuk data
tekstual) antara lain . Para pembulatan untuk bilangan bulat mengapung menggunakan baik
Pembulatan Aritmatika Symmetric atau Symmetric Putaran Bawah (Perbaiki)
tergantung pada argumen:
SELECT Round(2.5, 0)
memberikan 3.
Microsoft SQL Server juga memungkinkan user-defined jenis komposit
(UDT) untuk didefinisikan dan digunakan. Hal ini juga membuat statistik server
yang tersedia sebagai tabel virtual dan pandangan (disebut Views Manajemen
Dinamis atau DMVs). Selain tabel, database juga dapat berisi objek lain
termasuk pandangan , prosedur tersimpan , indeks dan kendala , bersama dengan log transaksi. Sebuah
database dapat berisi SQL Server maksimum 2 31 objek, dan dapat span
beberapa OS-tingkat file dengan ukuran file maksimum 2 20 TB . [30]
Data dalam database disimpan dalam file data primer dengan ekstensi
.mdf
. Data sekunder file, diidentifikasi dengan .ndf
ekstensi, digunakan untuk menyimpan metadata opsional. File log
diidentifikasi dengan .ldf
ekstensi.
Ruang penyimpanan yang dialokasikan ke database dibagi ke halaman
berurutan nomor, masing-masing 8 KB. Sebuah halaman adalah unit dasar I
/ O untuk operasi SQL Server. Sebuah halaman ditandai dengan sebuah header
96-byte yang menyimpan metadata tentang halaman termasuk jumlah halaman, jenis
halaman, ruang bebas pada halaman dan ID dari objek yang memiliki itu. Jenis
halaman mendefinisikan data yang terdapat dalam halaman - data yang disimpan
dalam, database indeks peta, alokasi yang menyimpan informasi tentang bagaimana
halaman dialokasikan untuk tabel dan indeks, peta perubahan yang menyimpan
informasi tentang perubahan yang dibuat ke halaman lain karena cadangan
terakhir atau penebangan , atau mengandung jenis data yang besar seperti gambar
atau teks. Ketika halaman adalah unit dasar dari operasi I / O, ruang
benar-benar berhasil dalam hal rupa yang terdiri dari 8 halaman. Sebuah
objek database dapat span semua 8 halaman dalam taraf tertentu ("sejauh
seragam") atau berbagi batas dengan hingga 7 objek lebih ("sejauh
campuran"). Sebuah baris dalam tabel database tidak dapat span lebih dari
satu halaman, sehingga terbatas untuk 8 KB. Namun, jika data melebihi 8 KB dan
baris berisi varchar atau data varbinary, data dalam kolom-kolom
dipindahkan ke halaman baru (atau mungkin urutan halaman, disebut unit
Alokasi) dan diganti dengan pointer ke data.
Untuk penyimpanan fisik tabel, baris yang
dibagi menjadi serangkaian partisi (nomor 1 sampai n). Ukuran partisi
ditentukan pengguna, secara default semua baris dalam partisi tunggal. Sebuah
tabel dibagi menjadi beberapa partisi dalam rangka menyebarkan database melalui
klaster . Baris dalam setiap partisi disimpan
di salah satu pohon B- atau tumpukan struktur. Jika tabel memiliki
terkait indeks untuk memungkinkan pengambilan cepat
baris, baris disimpan di-order sesuai dengan nilai-nilai indeks mereka, dengan
pohon B-memberikan indeks. Data dalam node daun daun, dan node lain menyimpan
nilai indeks untuk dicapai daun data dari node masing-masing. Jika indeks
adalah non-cluster, baris tidak diurutkan sesuai dengan kunci indeks. Sebuah
diindeks melihat memiliki struktur penyimpanan yang sama
sebagai meja diindeks. Sebuah meja tanpa indeks disimpan dalam struktur
tumpukan unordered. Kedua tumpukan dan B-pohon dapat span beberapa unit
alokasi.
Logging dan Transaksi
SQL Server memastikan bahwa setiap perubahan data ACID -compliant, yaitu menggunakan transaksi untuk memastikan bahwa database
akan selalu kembali ke keadaan yang konsisten dikenal pada kegagalan. Setiap
transaksi dapat terdiri dari beberapa pernyataan SQL yang semuanya hanya akan
membuat perubahan permanen ke database jika pernyataan terakhir dalam transaksi
(pernyataan COMMIT) selesai dengan sukses. Jika berhasil menyelesaikan COMMIT
transaksi aman pada disk.
SQL Server menerapkan transaksi menggunakan log menulis-depan.
Setiap perubahan yang dibuat ke halaman apapun akan memperbarui
cache di memori halaman, secara bersamaan semua operasi yang dilakukan akan
ditulis ke log, bersama dengan ID transaksi yang operasi merupakan bagian dari.
Setiap entri log diidentifikasi oleh Sequence Number Login meningkat
(LSN) yang digunakan untuk memastikan bahwa semua perubahan ditulis ke file
data. Juga selama log mengembalikannya digunakan untuk memeriksa bahwa tidak
ada log yang digandakan atau dilewati. SQL Server membutuhkan bahwa log ditulis
ke disk sebelum halaman data ditulis kembali. Hal ini juga harus memastikan
bahwa semua operasi dalam suatu transaksi ditulis ke log sebelum operasi COMMIT
dilaporkan sebagai selesai.
Pada titik kemudian server akan pos
pemeriksaan database dan memastikan bahwa semua halaman dalam file data
memiliki keadaan isinya disinkronisasi ke titik di atau setelah LSN bahwa pos
pemeriksaan dimulai. Ketika selesai tanda pos pemeriksaan yang sebagian dari
file log sebagai lengkap dan mungkin bebas (lihat transaksi Sederhana
penebangan penebangan vs transaksi Kendali). Hal ini memungkinkan SQL Server
untuk memastikan integritas data, bahkan jika sistem gagal.
Pada kegagalan log database harus diputar
untuk memastikan file-file data dalam keadaan konsisten. Semua halaman disimpan
dalam gulungan maju bagian dari log (tidak ditandai sebagai selesai) ditulis
ulang ke database, ketika akhir log tercapai semua transaksi terbuka digulung
kembali menggunakan bagian memutar kembali dari file log.
Mesin database biasanya pos-pos pemeriksaan cukup sering. Namun,
dalam sebuah database dimuat berat ini dapat memiliki dampak kinerja yang
signifikan. Hal ini dimungkinkan untuk mengurangi frekuensi pemeriksaan atau
menonaktifkan mereka sepenuhnya tapi rollforward selama pemulihan akan memakan
waktu lebih lama.
Concurrency dan mengunci
SQL Server memungkinkan beberapa klien untuk
menggunakan database yang sama secara bersamaan. Dengan demikian, perlu untuk
mengontrol akses bersamaan ke data bersama, untuk memastikan integritas data -
ketika beberapa klien memperbarui data yang sama, atau klien mencoba untuk
membaca data yang ada di proses yang diubah oleh klien lain. SQL Server
menyediakan dua mode kontrol konkurensi: konkurensi pesimis dan konkurensi optimis . Ketika kontrol
konkurensi pesimis sedang digunakan, SQL Server kontrol akses konkuren dengan
menggunakan kunci. Kunci dapat berupa bersama atau eksklusif. Kunci eksklusif
hibah akses pengguna eksklusif untuk data - tidak ada pengguna lain dapat
mengakses data selama mengunci diadakan. Berbagi kunci digunakan ketika
beberapa data sedang dibaca - beberapa pengguna dapat membaca dari data
terkunci dengan kunci bersama, tetapi tidak memperoleh kunci eksklusif. Yang
terakhir harus menunggu untuk semua berbagi kunci akan dirilis. Kunci dapat
diterapkan pada berbagai tingkat granularity - pada tabel keseluruhan, halaman,
atau bahkan pada basis per-baris pada tabel. Untuk indeks, baik itu dapat di
indeks seluruh atau pada daun indeks. Tingkat granularity yang akan digunakan
adalah didefinisikan pada basis per-database oleh database administrator.
Sementara sistem penguncian berbutir halus memungkinkan lebih banyak pengguna
untuk menggunakan tabel atau indeks secara bersamaan, itu membutuhkan lebih
banyak sumber daya. Jadi tidak secara otomatis berubah menjadi solusi
berkinerja tinggi. SQL Server juga mencakup dua lebih ringan saling pengecualian solusi - kait dan spinlocks
- yang kurang kuat daripada kunci tetapi sumber daya kurang intensif. SQL
Server menggunakan mereka untuk DMVs dan sumber daya lainnya yang biasanya
tidak sibuk. SQL Server juga memonitor semua benang pekerja yang memperoleh
kunci untuk memastikan bahwa mereka tidak berakhir di kebuntuan - dalam hal mereka lakukan, SQL
Server mengambil langkah-langkah perbaikan, yang dalam banyak kasus adalah
untuk membunuh salah satu benang terjerat dalam kebuntuan dan rollback
transaksi itu mulai. [30]
Untuk menerapkan penguncian, berisi SQL Server Manager Kunci. Manajer
Kunci mempertahankan tabel dalam memori yang mengelola objek database dan
kunci, jika ada, pada mereka beserta metadata lain tentang kunci. Akses ke
setiap objek bersama dimediasi oleh manajer kunci, yang bisa memberikan akses
ke sumber daya atau blok itu.
SQL Server juga menyediakan mekanisme
kontrol konkurensi optimis, yang mirip dengan kontrol konkurensi multiversion
digunakan dalam database lainnya. Mekanisme ini memungkinkan versi baru dari
suatu baris yang akan dibuat setiap kali baris diperbarui, sebagai lawan Timpa
baris, yaitu, berturut-turut adalah tambahan diidentifikasi oleh ID dari
transaksi yang menciptakan versi baris. Baik yang lama maupun versi baru dari
baris disimpan dan dipelihara, meskipun versi lama pindah dari database ke
dalam sistem database diidentifikasi sebagai
Tempdb
. Ketika berturut-turut adalah dalam proses sedang diperbarui, permintaan lain
tidak diblokir (tidak seperti mengunci) tetapi dijalankan pada versi yang lebih
tua dari baris. Jika permintaan lain adalah pernyataan update, itu akan
menghasilkan dua versi yang berbeda dari baris -. Keduanya akan disimpan oleh
database, diidentifikasi oleh ID masing-masing transaksi.Data pengambilan
Modus utama dari mengambil data dari
database SQL Server query untuk itu. Query tersebut dinyatakan
dengan menggunakan varian dari SQL yang disebut T-SQL , dialek saham Microsoft SQL Server dengan SQL Server Sybase karena warisan. Query declaratively menentukan apa yang akan
diambil. Hal ini diproses oleh prosesor query, yang angka keluar urutan
langkah-langkah yang akan diperlukan untuk mengambil data yang diminta. Urutan
tindakan yang diperlukan untuk mengeksekusi query disebut rencana permintaan.
Mungkin ada beberapa cara untuk memproses query yang sama. Sebagai contoh,
untuk sebuah query yang berisi bergabung pernyataan dan pilih pernyataan, mengeksekusi bergabung pada
kedua tabel dan kemudian melaksanakan pilih pada hasil akan memberikan hasil
yang sama seperti memilih dari meja masing-masing dan kemudian melaksanakan
bergabung, tetapi menghasilkan eksekusi yang berbeda rencana. Dalam hal
demikian, SQL Server memilih rencana yang diharapkan akan menghasilkan hasil
dalam waktu sesingkat mungkin. Ini disebut optimasi query dan dilakukan oleh prosesor
query itu sendiri.
SQL Server termasuk optimizer berbasis biaya
permintaan yang mencoba untuk mengoptimalkan biaya, dalam hal sumber daya yang
diperlukan untuk mengeksekusi query. Mengingat query, maka query optimizer
terlihat pada skema database , statistik database dan beban
sistem pada waktu itu. Ia kemudian memutuskan mana urutan untuk mengakses tabel
dimaksud dalam query, yang urutan untuk melaksanakan operasi dan apa metode
akses yang akan digunakan untuk mengakses tabel. Sebagai contoh, jika tabel
memiliki indeks yang terkait, apakah index harus digunakan atau tidak - jika
indeks pada kolom yang tidak unik untuk sebagian besar kolom (rendah
"selektivitas"), itu tidak mungkin bermanfaat untuk menggunakan
indeks untuk mengakses data. Akhirnya, ia memutuskan apakah akan mengeksekusi
query secara bersamaan atau tidak. Sementara eksekusi
konkuren lebih mahal dalam hal waktu prosesor total, karena eksekusi sebenarnya
dibagi ke prosesor yang berbeda mungkin berarti itu akan mengeksekusi lebih
cepat. Setelah rencana query dihasilkan untuk query, itu adalah sementara
cache. Untuk pemanggilan lebih lanjut dari query yang sama, rencana cache
digunakan. Rencana yang tidak terpakai dibuang setelah beberapa waktu.
SQL Server juga memungkinkan prosedur tersimpan untuk didefinisikan.
Prosedur yang tersimpan parameter T-SQL query, yang disimpan di server sendiri
(dan tidak dikeluarkan oleh aplikasi klien seperti halnya dengan permintaan
umum). Prosedur yang tersimpan dapat menerima nilai-nilai yang dikirim oleh klien
sebagai parameter masukan, dan mengirim kembali hasil sebagai parameter output.
Mereka dapat memanggil fungsi-fungsi didefinisikan, dan prosedur yang tersimpan
lainnya, termasuk prosedur yang tersimpan yang sama (sampai jumlah set kali).
Mereka dapat selektif diberikan akses ke . Tidak seperti
pertanyaan lain, prosedur yang tersimpan memiliki nama yang terkait, yang
digunakan pada saat runtime untuk menyelesaikan ke dalam query yang sebenarnya.
Juga karena kode tidak perlu dikirim dari klien setiap kali (karena dapat
diakses dengan nama), mengurangi lalu lintas jaringan dan agak meningkatkan
kinerja. [43]
Pelaksanaan rencana untuk disimpan prosedur juga cache yang diperlukan.
SQL CLR
Microsoft SQL Server 2005 mencakup komponen
bernama SQL CLR ("Common Language Runtime") melalui yang
terintegrasi dengan NET Framework. . Tidak seperti kebanyakan
aplikasi lain yang menggunakan. NET Framework, SQL Server itu sendiri host NET
Framework. runtime , yaitu, memori, threading dan
persyaratan manajemen sumber daya NET Framework. dipenuhi oleh SQLOS sendiri,
bukan sistem operasi Windows yang mendasarinya. SQLOS menyediakan deteksi
kebuntuan dan layanan resolusi untuk kode NET juga.. Dengan SQL CLR, prosedur yang tersimpan dan memicu dapat ditulis dalam dikelola bahasa. NET , termasuk C # dan VB.NET . kode Dikelola juga dapat digunakan untuk
mendefinisikan itu UDT ( jenis pengguna didefinisikan
), yang dapat bertahan dalam database. kode Managed adalah dikompilasi untuk majelis NET. dan setelah diverifikasi untuk keselamatan jenis , terdaftar di database.
Setelah itu, mereka dapat dipanggil seperti prosedur lainnya. [44]
Namun, hanya sebuah subset dari Base Class Library tersedia, ketika menjalankan
kode di bawah SQL CLR. API yang paling berkaitan dengan antarmuka pengguna fungsionalitas tidak
tersedia.
Ketika menulis kode untuk SQL CLR, data yang
disimpan dalam database SQL Server dapat diakses menggunakan ADO.NET API seperti yang lain dikelola aplikasi yang mengakses data SQL
Server. Namun, melakukan yang menciptakan sesi database baru, yang berbeda dari
yang di mana kode ini mengeksekusi. Untuk menghindari hal ini, SQL Server
menyediakan beberapa perangkat tambahan ke ADO.NET penyedia yang memungkinkan koneksi yang akan diarahkan
ke sesi yang sama yang sudah host kode yang berjalan. Koneksi semacam ini
disebut koneksi konteks dan ditetapkan dengan menetapkan
context connection
parameter untuk true
dalam connection
string. SQL Server juga menyediakan beberapa perangkat tambahan lain ke ADO.NET API, termasuk kelas untuk bekerja dengan data tabular
atau satu baris data serta kelas untuk bekerja dengan metadata internal tentang
data yang disimpan dalam database. Hal ini juga menyediakan akses ke fitur XML
di SQL Server, termasuk XQuery dukungan. Peningkatan ini juga tersedia di T-SQL
Prosedur konsekuensi dari pengenalan baru XML Datatype (permintaan, nilai,
fungsi node). Layanan Broker
Digunakan di dalam contoh, digunakan untuk menyediakan lingkungan
pemrograman asynchronous. Untuk aplikasi Misalnya lintas, Layanan Broker
berkomunikasi melalui TCP / IP dan memungkinkan komponen-komponen yang berbeda untuk
disinkronkan bersama-sama, melalui pertukaran pesan. Broker Service, yang berjalan
sebagai bagian dari mesin database, menyediakan pesan yang dapat diandalkan dan
pesan antrian platform untuk aplikasi SQL
Server.
Layanan Replikasi
Layanan Replikasi SQL Server yang digunakan oleh SQL Server untuk
meniru dan sinkronisasi objek database, baik secara keseluruhan atau bagian
dari objek ini, seluruh agen replikasi, yang mungkin server database lain di
jaringan, atau cache database pada sisi klien. Replikasi mengikuti model
penerbit / pelanggan, yaitu, perubahan dikirim oleh satu server database
("penerbit") dan diterima oleh orang lain ("pelanggan").
SQL Server mendukung tiga
Analisis Layanan
SQL Server Analysis Services menambahkan OLAP dan data mining kemampuan untuk database SQL
Server. Mesin OLAP mendukung MOLAP , ROLAP dan HOLAP mode penyimpanan data. Analysis Services mendukung XML untuk Analisis standar sebagai protokol komunikasi yang
mendasarinya. Data kubus dapat diakses menggunakan MDX dan LINQ query. Data mining fungsionalitas tertentu
terkena melalui DMX bahasa query. Layanan analisis
meliputi berbagai algoritma - pohon Keputusan , algoritma clustering, Naif Bayes algoritma, analisis time series,
urutan algoritma clustering, linear dan logistik regresi analisis, dan jaringan saraf - untuk digunakan dalam data
mining.
Pelaporan Layanan
SQL Server Reporting Services adalah
lingkungan untuk generasi laporan data yang dikumpulkan dari database SQL
Server. Hal ini diberikan melalui antarmuka web . Pelaporan layanan fitur layanan web antarmuka untuk mendukung
pengembangan aplikasi laporan kustom. Laporan dibuat sebagai RDL file.
Laporan dapat didesain menggunakan versi
terbaru dari Microsoft Visual Studio (Visual Studio.NET
2003, 2005, dan 2008) dengan Bisnis Intelligence Development
Studio , diinstal atau dengan disertakan Laporan Builder . Setelah
dibuat, file RDL dapat diberikan dalam berbagai format termasuk Excel, PDF , CSV , XML , TIFF.
Pemberitahuan Layanan
Awalnya diperkenalkan sebagai pos-release
add-on untuk SQL Server 2000, Pemberitahuan Layanan ini dipaketkan sebagai
bagian dari platform Microsoft SQL Server untuk pertama kalinya dan hanya
dengan SQL Server 2005. Dengan Sql Server 2005, SQL Server Pemberitahuan
Services adalah sebuah mekanisme untuk menghasilkan data-driven pemberitahuan,
yang dikirim ke pelanggan Pemberitahuan Layanan. Seorang pelanggan mendaftar
untuk acara tertentu atau transaksi (yang terdaftar pada database server
sebagai pemicu), ketika peristiwa itu terjadi, Layanan Pemberitahuan dapat
menggunakan salah satu dari tiga metode untuk mengirim pesan ke pelanggan
menginformasikan tentang terjadinya peristiwa tersebut. Metoyde-metode ini
termasuk SMTP, SOAP, atau dengan menulis ke file di filesystem. [61]
Pemberitahuan Layanan dihentikan oleh Microsoft dengan merilis SQL Server 2008
pada bulan Agustus 2008, dan tidak lagi komponen resmi didukung database SQL
Server platform.
Layanan Integrasi
SQL Server Integration Services digunakan
untuk mengintegrasikan data dari sumber data yang berbeda. Hal ini digunakan
untuk ETL kemampuan untuk SQL Server untuk data pergudangan kebutuhan. Layanan Integrasi
termasuk alat GUI untuk membangun data ekstraksi alur kerja berbagai fungsi integrasi seperti penggalian data
dari berbagai sumber, query data, transformasi data termasuk menggabungkan,
duplikasi dan penggabungan data, dan kemudian loading data ditransformasikan ke
sumber lain, atau mengirim e-mail merinci status operasi seperti yang didefinisikan oleh
pengguna.
Layanan Teks Pencarian Penuh
SQL Server layanan Pencarian Teks Penuh
adalah pengindeksan khusus dan layanan query untuk teks tidak terstruktur
disimpan dalam database SQL Server. Indeks pencarian teks lengkap dapat dibuat
pada setiap kolom dengan data teks berbasis karakter. Hal ini memungkinkan
untuk kata-kata yang akan dicari pada kolom teks. Meskipun dapat dilakukan
dengan SQL
LIKE
operator, menggunakan SQL Server
layanan Teks Pencarian Penuh dapat lebih efisien. Kendali memungkinkan untuk
pencocokan eksak dari string sumber, ditunjukkan dengan nilai Peringkat
yang dapat berkisar dari 0 sampai 1000 - peringkat yang lebih tinggi berarti
pertandingan yang lebih akurat. Hal ini juga memungkinkan pencocokan linguistik
("pencarian infleksional"), yaitu, varian linguistik kata (seperti
kata kerja dalam bentuk waktu yang berbeda) juga akan menjadi pertandingan
untuk kata tertentu (tapi dengan peringkat lebih rendah daripada yang sama
persis). Kedekatan pencarian juga didukung, yaitu, jika kata-kata mencari tidak
terjadi dalam urutan mereka ditentukan dalam query tetapi dekat satu sama lain,
mereka juga dianggap cocok. T-SQL mengekspos operator khusus yang dapat
digunakan untuk mengakses kemampuan FTS.
Mesin Full Text Cari dibagi menjadi dua
proses - proses Daemon Filter (
msftefd.exe
) dan proses pencarian ( msftesql.exe
). Proses ini berinteraksi dengan SQL Server. Proses Pencarian
mencakup pengindeks (yang menciptakan indeks teks lengkap) dan prosesor teks
lengkap query. Indexer scan melalui kolom teks dalam database. Hal ini juga
dapat mengindeks melalui kolom biner, dan menggunakan iFilters untuk mengambil teks berarti dari gumpalan biner
(misalnya, ketika Microsoft Word dokumen disimpan sebagai file
biner tidak terstruktur dalam database). Para iFilters-host oleh proses Daemon
Filter. Setelah teks diekstrak, proses Daemon Filter istirahat itu menjadi
urutan kata-kata dan tangan itu ke indexer. Pengindeks filter kata-kata
kebisingan, yaitu, kata-kata seperti A, Dan lain-lain, yang sering
terjadi dan tidak berguna untuk pencarian. Dengan kata-kata yang tersisa,
sebuah inverted index dibuat, mengasosiasikan setiap
kata dengan kolom mereka ditemukan masuk SQL Server itu sendiri mencakup
komponen Pengumpul yang memantau perubahan tabel dan memanggil
pengindeks dalam kasus update.
Ketika query teks lengkap diterima oleh
prosesor query SQL Server, itu diserahkan kepada query processor FTS dalam
proses Pencarian. Query processor FTS memecah query ke dalam kata-kata
konstituen, menyaring kata-kata kebisingan, dan menggunakan built-in tesaurus untuk mengetahui varian linguistik untuk setiap kata.
Kata-kata tersebut kemudian bertanya terhadap indeks terbalik dan peringkat
akurasi mereka dihitung. Hasil dikembalikan ke klien melalui proses SQL Server.