Menguruskan keselamatan pelayan SQL menggunakan Microsoft Access (dokumentasi). Nama peranan pangkalan data tetap. Operasi tanpa gangguan dan keselamatan data

Versi pertama Pelayan Microsoft SQL telah diperkenalkan oleh syarikat itu pada tahun 1988. DBMS segera diletakkan sebagai hubungan, yang, menurut pengilang, mempunyai tiga kelebihan:

  • prosedur tersimpan, berkat pengambilan data yang dipercepatkan dan integritinya dikekalkan dalam mod berbilang pengguna;
  • akses berterusan untuk pentadbiran tanpa memutuskan sambungan pengguna;
  • platform pelayan terbuka yang membolehkan anda mencipta aplikasi pihak ketiga yang menggunakan Pelayan SQL.

2005, dengan nama kod Yukon dengan keupayaan penskalaan lanjutan, merupakan versi pertama yang menyokong sepenuhnya teknologi .NET. Sokongan untuk data yang diedarkan telah bertambah baik, dan alat pelaporan dan analisis maklumat pertama telah muncul.

Penyepaduan dengan Internet memungkinkan untuk menggunakan SQL Server 2005 sebagai asas untuk mencipta sistem e-dagang dengan akses mudah dan selamat kepada data melalui penyemak imbas popular menggunakan versi Firewall Enterprise terbina dalam yang disokong pengkomputeran selari pada bilangan pemproses yang tidak terhad.

Menggantikan versi 2005 Microsoft SQL Server 2008, yang masih merupakan salah satu yang paling banyak pelayan popular pangkalan data, dan tidak lama kemudian versi seterusnya muncul - SQL Servers 2012, dengan sokongan untuk keserasian dengan Rangka Kerja .NET dan teknologi pemprosesan maklumat lanjutan dan persekitaran pembangunan yang lain Studio Visual. Modul SQL Azure khas telah dicipta untuk mengaksesnya.

Transact-SQL

Sejak 1992, SQL telah menjadi standard untuk mengakses pangkalan data. Hampir semua bahasa pengaturcaraan menggunakannya untuk mengakses pangkalan data, walaupun pengguna nampaknya bekerja dengan maklumat secara langsung. Sintaks asas bahasa tetap sama untuk memastikan keserasian, tetapi setiap vendor sistem pengurusan pangkalan data telah cuba menambah pada SQL fungsi tambahan. Tidak mungkin untuk mencari kompromi, dan selepas "perang piawai" terdapat dua pemimpin yang tinggal: PL/SQL daripada Oracle dan Transact-SQL dalam Microsoft Servers SQL.

T-SQL secara prosedur memanjangkan SQL untuk mengakses Microsoft Servers SQL. Tetapi ini tidak mengecualikan pembangunan aplikasi pada pengendali "standard".

Automasi perniagaan anda dengan SQL Server 2008 R2

Pengendalian aplikasi perniagaan yang boleh dipercayai adalah sangat penting untuk perniagaan moden. Sedikit pun downtime pangkalan data boleh menyebabkan kerugian besar. Pelayan pangkalan data data Microsoft SQL Server 2008 R2 membolehkan anda menyimpan dengan pasti dan selamat jumlah maklumat yang hampir tidak terhad menggunakan alatan pengurusan yang biasa kepada semua pentadbir. Penskalaan menegak sehingga 256 pemproses disokong.

Teknologi Hyper-V memanfaatkan sepenuhnya kuasa sistem berbilang teras moden. Menyokong berbilang sistem maya pada pemproses tunggal mengurangkan kos dan meningkatkan kebolehskalaan.

Analisis data anda

Untuk analisis cepat dalam aliran data masa nyata, komponen SQL Server StreamInsight digunakan, yang dioptimumkan untuk jenis tugasan ini. Ia adalah mungkin untuk membangunkan aplikasi anda sendiri berdasarkan .NET.

Operasi tanpa gangguan dan keselamatan data

Sokongan untuk prestasi optimum pada bila-bila masa dipastikan oleh pengawal selia sumber yang dibina ke dalam pelayan. Pentadbir boleh menguruskan beban dan sistem bermaksud, tetapkan had untuk aplikasi mengenai penggunaan pemproses dan sumber memori. Fungsi penyulitan menyediakan perlindungan maklumat yang fleksibel dan telus serta mengekalkan log akses kepadanya.

Saiz pangkalan data tanpa had

Storan data boleh ditingkatkan dengan cepat dan selamat. Pengguna boleh menggunakan templat siap sedia Fast Track Date Warehouse untuk menyokong tatasusunan cakera sehingga 48 TB. Konfigurasi asas menyokong peralatan daripada syarikat terkemuka seperti HP, EMC dan IBM. Fungsi pemampatan maklumat mengikut piawaian UCS 2 membolehkan anda menggunakan ruang cakera dengan lebih menjimatkan.

Meningkatkan kecekapan pembangun dan pentadbir

Baru ahli sihir perisian membolehkan anda menghapuskan pelayan yang kurang digunakan dengan cepat, meningkatkan kawalan dan mengoptimumkan prestasi tanpa memerlukan pakar pihak ketiga luaran. Pantau prestasi aplikasi dan pangkalan data, cari penambahbaikan dalam papan pemuka, dan percepatkan kemas kini dan pemasangan.

Alat untuk analisis perniagaan peribadi

Tidak pernah ada konsensus di kalangan syarikat tentang siapa yang harus melakukan analitik—jabatan IT atau pengguna secara langsung. Sistem pelaporan peribadi menyelesaikan masalah ini dengan instrumen moden pembinaan, analisis dan pemodelan proses perniagaan yang selamat dan berkesan. Menyokong akses terus ke pangkalan data dalam Microsoft Office Dan Pelayan SharePoint. Maklumat korporat boleh disepadukan dengan jenis kandungan lain, seperti peta, grafik dan video.

Persekitaran kerjasama yang selesa

Beri pekerja anda akses kepada maklumat, kerjasama dan analisis data dengan apl e-dagang PowerPivot. Jadual Excel. Program ini membolehkan anda menganalisis maklumat dan memodelkan proses perniagaan serta menerbitkan laporan untuk akses awam di web atau SharePoint.

Untuk penciptaan visual laporan dalaman, sistem Report Builder 3.0 ditawarkan, yang menyokong banyak format dan pelbagai templat pratakrif.

Bekerja dengan pangkalan data secara percuma

Syarikat itu menyediakan projek kecil dan pemaju permulaan dengan istimewa versi percuma Microsoft SQL Server Express. Ini termasuk teknologi pangkalan data yang sama seperti versi "penuh" SQL Server.

Persekitaran pembangunan Visual Studio dan Pembangun Web disokong. Cipta jadual dan pertanyaan yang kompleks, bangunkan aplikasi Internet dengan sokongan pangkalan data, dan dapatkan akses terus kepada maklumat daripada PHP.

Manfaatkan kuasa penuh Transact-SQL dan teknologi capaian data paling maju ADO.NET dan LINQ. Prosedur tersimpan, pencetus dan fungsi disokong.

Tumpukan pada elemen logik perniagaan, dan sistem akan mengoptimumkan struktur pangkalan data sendiri.

Buat laporan yang kaya tentang sebarang kerumitan. Gunakan subsistem carian, sepadukan laporan dengan aplikasi Microsoft Pejabat dan tambahkan maklumat lokasi geografi pada dokumen anda.

Aplikasi yang dibangunkan boleh berfungsi tanpa sambungan ke pelayan pangkalan data. Penyegerakan dilakukan secara automatik menggunakan teknologi replikasi transaksi proprietari Rangka Kerja Penyegerakan.

Tadbir infrastruktur anda menggunakan dasar pengurusan untuk semua pangkalan data dan aplikasi. Senario operasi biasa mengurangkan masa untuk pengoptimuman pertanyaan, penciptaan dan pemulihan salinan sandaran skala perusahaan.

SQL Server 2008 R2 Express Edition sesuai untuk menggunakan tapak web dan kedai dalam talian dengan pantas, program untuk kegunaan peribadi dan perniagaan kecil. ini pilihan yang hebat untuk mula bekerja dan belajar.

Urus pangkalan data anda menggunakan SQL Server Management Studio

Microsoft SQL Pengurusan Pelayan ialah persekitaran khusus untuk mencipta, mengakses dan mengurus pangkalan data dan semua elemen SQL Server, termasuk perkhidmatan pelaporan.

Sistem ini menggabungkan dalam satu antara muka semua keupayaan program pentadbiran daripada versi terdahulu, seperti Penganalisis Pertanyaan dan Pengurus Perusahaan. Pentadbir menerima perisian dengan set besar pembangunan grafik dan objek pengurusan, serta bahasa yang diperluaskan untuk mencipta skrip untuk bekerja dengan pangkalan data.

Editor kod Microsoft Server Management Studio patut diberi perhatian khusus. Ia membolehkan anda membangunkan skrip berskrip dalam Transact-SQL, program pertanyaan akses data berbilang dimensi dan menganalisisnya dengan sokongan untuk menyimpan hasil dalam XML. Penciptaan pertanyaan dan skrip boleh dilakukan tanpa menyambung ke rangkaian atau pelayan, dengan pelaksanaan dan penyegerakan seterusnya. Tersedia luas memilih templat pra-pasang dan sistem kawalan versi.

Modul Pelayar Objek membolehkan anda melihat dan mengurus sebarang objek SQL Servers Microsoft terbina dalam merentas semua pelayan dan kejadian pangkalan data. Akses mudah kepada maklumat yang anda perlukan adalah sangat penting perkembangan pesat aplikasi dan kawalan versi.

Sistem ini dibina pada sistem Visual Studio Isolated Shell, yang menyokong tetapan dan sambungan yang boleh diperluaskan pemaju pihak ketiga. Terdapat banyak komuniti di Internet di mana anda boleh menemui semua maklumat dan contoh kod yang diperlukan untuk membangunkan alat pengurusan dan pemprosesan data anda sendiri.

Menurut syarikat penyelidikan Forrester Research, pelayan pangkalan data Microsoft SQL Server 2012 adalah antara tiga pemimpin teratas dalam pasaran penyimpanan maklumat korporat pada akhir tahun 2013. Pakar ambil perhatian bahawa pertumbuhan pesat bahagian pasaran Microsoft adalah disebabkan oleh pendekatan komprehensif syarikat untuk mengautomasikan proses perniagaan. Microsoft SQL Server ialah platform moden untuk mengurus dan menyimpan data apa-apa jenis, ditambah dengan alat analisis dan pembangunan. Secara berasingan, adalah wajar diperhatikan kemudahan penyepaduan dengan produk syarikat lain, seperti Office dan SharePoint.

Syarikat saya baru sahaja melalui proses semakan tahunan mereka dan akhirnya saya meyakinkan mereka bahawa sudah tiba masanya untuk mencari penyelesaian yang lebih baik untuk menguruskan skema/adegan SQL kami. Pada masa ini kami hanya mempunyai beberapa skrip untuk kemas kini manual.

Saya bekerja dengan Edisi Pangkalan Data VS2008 di syarikat lain dan ia adalah produk yang menakjubkan. Bos saya meminta saya melihat SQL Compare oleh Redgate dan mencari produk lain yang mungkin lebih baik. Perbandingan SQL juga merupakan produk yang hebat. Walau bagaimanapun, mereka nampaknya tidak menyokong Perforce.

Adakah anda menggunakan pelbagai produk untuk ini?

Apakah alatan yang anda gunakan untuk pengurusan SQL?

Apakah yang mesti disertakan dalam keperluan sebelum syarikat saya membuat pembelian?

10 jawapan

Saya tidak fikir ada alat yang boleh mengendalikan semua bahagian. Edisi Pangkalan Data VS tidak membenarkan anda mencipta mekanisme keluaran yang baik. Menjalankan skrip individu daripada Penyemak Imbas Penyelesaian tidak mempunyai skala yang cukup baik dalam projek besar.

Sekurang-kurangnya anda perlukan

  • IDE/editor
  • repositori kod sumber yang boleh dilancarkan daripada IDE anda
  • konvensyen penamaan dan organisasi pelbagai skrip dalam folder
  • proses mengendalikan perubahan, mengurus keluaran dan melaksanakan penempatan.

Peluru terakhir adalah tempat yang biasanya pecah. sebab tu. Untuk kebolehurusan dan penjejakan versi yang lebih baik, anda ingin menyimpan setiap objek db ke fail skripnya sendiri. Iaitu, setiap jadual, prosedur tersimpan, paparan, indeks, dll. mempunyai fail sendiri.

Apabila sesuatu berubah anda mengemas kini fail dan anda telah versi baharu dalam repositori anda dengan maklumat yang diperlukan. Apabila ia datang untuk menggabungkan berbilang perubahan kepada keluaran, pemprosesan fail berasingan mungkin menyusahkan.

2 pilihan yang saya gunakan:

    Selain menyimpan semua objek pangkalan data individu dalam fail mereka sendiri, anda mempunyai skrip keluaran, yang merupakan gabungan skrip individu. Kelemahan ini: anda mempunyai kod di 2 tempat dengan semua risiko dan keburukan. Potensi: Menjalankan keluaran adalah semudah melaksanakan satu skrip.

    tulis alat kecil yang boleh membaca metadata skrip daripada manifes keluaran dan melaksanakan skrip eadch yang dinyatakan dalam manifes pada pelayan sasaran. Tiada kelemahan untuk ini kecuali anda perlu menulis kod. Pendekatan ini tidak berfungsi untuk jadual yang tidak boleh digugurkan dan dibuat semula (sebaik sahaja anda disiarkan secara langsung dan anda mempunyai data), jadi anda perlu menukar skrip untuk jadual tersebut. Jadi ia sebenarnya akan menjadi gabungan kedua-dua pendekatan.

Saya dalam kem "skrip itu sendiri" kerana produk pihak ketiga hanya akan membawa anda setakat menguruskan kod pangkalan data. Saya tidak mempunyai satu skrip untuk setiap objek kerana objek berubah mengikut masa, dan sembilan daripada sepuluh hanya mengemas kini skrip "jadual ciptaan" saya untuk mempunyai tiga lajur baharu adalah tidak mencukupi.

Mewujudkan pangkalan data adalah sangat remeh. Sediakan sekumpulan skrip CREATE, susun dengan betul (buat pangkalan data sebelum skema, skema sebelum jadual, jadual sebelum prosedur, prosedur panggilan sebelum panggilan, dll.) dan lakukannya. Menguruskan perubahan pangkalan data tidak semudah itu:

  • Jika anda menambah lajur pada jadual, anda tidak boleh melepaskan jadual itu dan menciptanya dengan lajur baharu kerana itu akan memusnahkan semua data pengeluaran berharga anda.
  • Jika Fred menambah lajur pada jadual XYZ dan Mary menambah lajur lain pada jadual XYZ, lajur manakah yang ditambah dahulu? Ya, susunan lajur dalam jadual tidak penting [kerana anda tidak pernah menggunakan SELECT *, bukan?], melainkan anda cuba mengurus pangkalan data dan menjejak versi, pada ketika itu anda mempunyai dua pangkalan data "sebenar" yang tidak kelihatan seperti satu sama lain, menjadi sakit kepala. Kami menggunakan perbandingan SQL bukan untuk mengurus, tetapi untuk menyemak dan menjejaki sesuatu, terutamanya semasa pembangunan, dan beberapa situasi "mereka berbeza (tetapi ia bukan magger)" yang boleh menghalang kami daripada menyedari perbezaan yang penting.
  • Begitu juga, apabila berbilang projek (pembangun) berfungsi secara serentak dan berasingan pada pangkalan data biasa, ia boleh menjadi sangat kompleks. Mungkin semua orang sedang mengusahakan projek Next Big Thing, apabila tiba-tiba seseorang terpaksa mula bekerja pada pembetulan pepijat untuk projek Last Big Thing. Bagaimanakah anda mengurus pengubahsuaian kod yang diperlukan apabila pesanan keluaran berubah-ubah dan fleksibel? (Memang kelakar masa.)
  • Mengubah struktur jadual bermakna menukar data, dan ini boleh menjadi sangat rumit apabila anda perlu berurusan serasi ke belakang. Anda menambah lajur "DeltaFactor", ok, jadi apakah yang anda lakukan untuk mengisi nilai esoterik ini untuk semua data sedia ada (baca: warisan) anda? Anda menambah jadual carian baharu dan lajur yang sepadan, tetapi bagaimanakah anda mengisinya untuk baris sedia ada? Situasi ini mungkin tidak kerap berlaku, tetapi apabila ia berlaku, anda perlu melakukannya sendiri. Alat pihak ketiga tidak dapat menjangkakan keperluan logik perniagaan anda.

Pada asasnya saya mempunyai skrip CREATE untuk setiap pangkalan data diikuti dengan satu siri skrip ALTER apabila asas kod kami berubah dari semasa ke semasa. Setiap skrip menyemak untuk melihat sama ada ia boleh dijalankan: ini adalah "jenis" pangkalan data yang betul, pra-skrip yang diperlukan telah dilaksanakan, skrip ini sudah berjalan. Hanya apabila semakan diluluskan, skrip akan melaksanakan perubahannya.

Sebagai alat, kami menggunakan SourceGear Fortress untuk pengurusan kod sumber asas, Redgate SQL Compare untuk sokongan umum dan penyelesaian masalah, dan beberapa skrip rumah berasaskan SQLCMD untuk menggunakan skrip "pukal" dengan perubahan pada berbilang pelayan dan pangkalan data serta menjejaki siapa yang telah memohon. skrip pangkalan data yang mana pada masa berapa. Hasil akhirnya: semua pangkalan data kami adalah stabil dan stabil, dan kami boleh dengan mudah membuktikan versi mana yang ada pada bila-bila masa.

Kami memerlukan semua perubahan atau sisipan pangkalan data kepada perkara seperti jadual carian dilakukan dalam skrip dan disimpan dalam kawalan sumber. Ia kemudiannya digunakan dengan cara yang sama seperti mana-mana kod penggunaan versi lain perisian. Memandangkan pembangun kami tidak mempunyai hak penggunaan, mereka tidak mempunyai pilihan selain membuat skrip.

Biasanya saya menggunakan MS Server Management Studio untuk mengurus sql, bekerja dengan data, membangunkan pangkalan data dan nyahpepijatnya jika saya perlu mengeksport beberapa data ke skrip sql atau saya perlu mencipta beberapa objek kompleks dalam pangkalan data, saya menggunakan EMS SQL Management Studio untuk SQL Server kerana di sana saya dapat melihat dengan lebih jelas bahagian sempit kod dan reka bentuk visual saya dalam persekitaran ini memberi saya lebih mudah

Saya mempunyai projek sumber terbuka (dilesenkan di bawah LGPL) yang cuba menyelesaikan masalah yang berkaitan dengan versi yang betul Skema DB untuk (dan banyak lagi) SQL Server (2005/2008/Azure), bsn ModuleStore. Keseluruhan proses ini sangat hampir dengan konsep yang dijelaskan oleh siaran Phillip Kelly di sini.

Pada asasnya, bahagian berasingan skrip toolkit menyalin objek pangkalan data SQL Server skema DB ke dalam fail dengan pemformatan standard, jadi kandungan fail hanya ditukar jika objek itu benar-benar berubah (tidak seperti skrip yang dilakukan oleh VS, yang juga mencipta skrip dsb. , menandakan semua objek yang diubah, walaupun ia hampir sama).

Tetapi kit alat melampaui ini jika anda menggunakan .NET: ia membenarkan anda membenamkan skrip SQL ke dalam perpustakaan atau aplikasi (sebagai sumber sebaris), dan kemudian membandingkan skrip sebaris yang dibandingkan dengan keadaan sekarang dalam pangkalan data. Perubahan bukan jadual (yang bukan "perubahan yang merosakkan" seperti yang ditakrifkan oleh Martin Fowler) boleh digunakan secara automatik atau atas permintaan (contohnya, mencipta dan memadam objek seperti pandangan, fungsi, prosedur tersimpan, jenis, indeks) dan menukar skrip (yang perlu ditulis secara manual) boleh digunakan dalam proses yang sama; jadual baharu juga dibuat, serta data persediaannya. Selepas kemas kini, skema pangkalan data sekali lagi dibandingkan dengan skrip untuk memastikan kemas kini pangkalan data berjaya sebelum perubahan dibuat.

Ambil perhatian bahawa semua skrip dan kod perbandingan berjalan tanpa SMO, jadi anda tidak mempunyai pergantungan SMO yang menyakitkan apabila menggunakan modul bsn ModuleStore dalam aplikasi.

Bergantung pada cara anda ingin mengakses pangkalan data, kit alat menawarkan lebih banyak lagi - ia melaksanakan beberapa keupayaan ORM dan menawarkan pendekatan bahagian hadapan yang sangat bagus dan berguna untuk memanggil prosedur tersimpan, termasuk sokongan XML telus dengan kelas .NET XML asli, dan juga untuk TVP (Parameter Bernilai Jadual) sebagai IEnumerable

Berikut ialah skrip saya untuk menjejaki proc dan udf dan pencetus yang disimpan dalam jadual.

    Cipta jadual untuk menyimpan kod sumber proc sedia ada

    Masukkan jadual dengan semua data pencetus dan skrip sedia ada

    Buat pencetus DDL untuk menjejaki perubahan padanya

    /****** Objek: Jadual . Tarikh Skrip: 9/17/2014 11:36:54 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE JADUAL . ( IDENTITI(1, 1) BUKAN NULL , (1000) NULL , (1000) NULL , (1000) NULL , (1000) NULL , NULL , NTEXT NULL ,KEKANGAN KUNCI UTAMA BERKUMPUL ( ASC) WITH (PUD_COMP) WITH =PUD_COMP OFF , IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON) ON ) ON GO ALTER TABLE . TAMBAHKAN KEKANGAN lalai("") UNTUK MASUKKAN KE DALAM . ( , , , , ,) PILIH "sa" ,"loginitialdata" ,r.ROUTINE_NAME ,r.ROUTINE_TYPE ,GETDATE() ,r.ROUTINE_DEFINITION DARIPADA INFORMATION_SKEMA.RUTIN r UNION SELECT "sa" ,"loginitialdata" ,v. "lihat" ,GETDATE() ,v.VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS v UNION SELECT "sa" ,,"loginitialdata" ,o.NAME , "trigger" ,GETDATE() ,m.DEFINITION FROM sys.objects o JOIN sys. sql_modules m HIDUP o.object_id = m.object_id WHERE o.type = "TR" GO BUAT PENCETUS PADA PANGKALAN DATA UNTUK CREATE_PROCEDURE ,ALTER_PROCEDURE ,DROP_PROCEDURE ,CREATE_INDEX ,ALTER_INDEX ,_OPERADEX_GER GER ,ALTER _JADUAL ,ALTER_VIEW ,CREATE_VIEW ,DROP_VIEW SEBAGAI MULA TETAPKAN NOKA PADA DECLARE @data SET XML @data = Eventdata() INSERT IN TO sysupdatelog VALUES (@data.value("(/EVENT_INSTANCE/LoginName)", "nvarchar(255)") ,@data.value("( /EVENT_INSTANCE /EventType)", "nvarchar(255)") ,@data.value("(/EVENT_INSTANCE/ObjectName)", "nvarchar(255)") ,@data.value("(/EVENT_INSTANCE/ObjectType)" , " nvarchar(255)") ,getdate() ,@data.value("(/EVENT_INSTANCE/TSQLCommand/CommandText)", "nvarchar(maks)")) SET NOKA OFF END GO SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO DAYAKAN PENCETUS PADA PANGKALAN DATA GO

Jika anda pernah menulis skema penguncian dalam bahasa pangkalan data lain untuk mengatasi kekurangan penguncian (seperti yang saya lakukan), anda mungkin telah ditinggalkan dengan perasaan bahawa anda perlu berurusan dengan mengunci diri sendiri. Biar saya memberi jaminan bahawa pengurus kunci boleh dipercayai sepenuhnya. Walau bagaimanapun, SQL Server menawarkan beberapa kaedah untuk menguruskan kunci, yang akan kami bincangkan secara terperinci dalam bahagian ini.

Jangan gunakan tetapan penguncian atau tukar tahap pengasingan secara rawak—percayai pengurus kunci SQL Server untuk mengimbangi perbalahan dan integriti transaksi. Hanya jika anda benar-benar pasti bahawa skema pangkalan data dikonfigurasikan dengan baik dan kod program benar-benar digilap, anda boleh melaraskan sedikit kelakuan pengurus kunci untuk menyelesaikan masalah tertentu. Dalam sesetengah kes, menetapkan pertanyaan pilih untuk tidak dikunci akan menyelesaikan kebanyakan masalah.

Menetapkan tahap pengasingan sambungan

Tahap pengasingan menentukan tempoh penyekatan sambungan umum atau eksklusif. Menetapkan tahap pengasingan mempengaruhi semua pertanyaan dan semua jadual yang digunakan untuk tempoh sambungan atau sehingga satu tahap pengasingan digantikan dengan yang lain secara eksplisit. Contoh berikut menetapkan pengasingan yang lebih ketat daripada yang lalai dan menghalang bacaan tidak berulang:

TETAPKAN TAHAP PENGASINGAN TRANSAKSI BACA DIULANG Tahap pengasingan yang sah ialah:

Baca tanpa komitmen? boleh bersiri

Baca komited? syot kilat

Bacaan berulang

Anda boleh menyemak tahap pengasingan semasa anda menggunakan perintah Semakan Integriti Pangkalan Data (DBCC):

PILIHAN PENGGUNA DBCC

Keputusannya adalah seperti berikut (disingkatkan):

Tetapkan Nilai Pilihan

bacaan berulang tahap pengasingan

Tahap pengasingan juga boleh ditetapkan pada peringkat pertanyaan atau jadual menggunakan pilihan mengunci.

Menggunakan Pengasingan Tahap Syot Kilat Pangkalan Data

Terdapat dua pilihan untuk tahap pengasingan syot kilat pangkalan data: syot kilat dan syot kilat komited baca. Pengasingan syot kilat berfungsi seperti bacaan berulang tanpa menangani isu penguncian. Pengasingan syot kilat tekad membaca meniru tahap tekad baca lalai SQL Server, juga menghapuskan isu penguncian.

Walaupun pengasingan transaksi biasanya dikonfigurasikan pada peringkat sambungan, pengasingan syot kilat mesti dikonfigurasikan pada peringkat pangkalan data kerana ia

berkesan menjejak versi baris dalam pangkalan data. Versi baris ialah teknologi yang mencipta salinan baris dalam pangkalan data TempDB untuk dikemas kini. Sebagai tambahan kepada pemuatan utama pangkalan data TempDB, versi baris juga menambah pengecam baris 14-bait.

Menggunakan Pengasingan Syot Kilat

Coretan berikut mendayakan tahap pengasingan syot kilat. Untuk mengemas kini pangkalan data dan mendayakan tahap pengasingan syot kilat, tiada sambungan lain mesti diwujudkan ke pangkalan data ini.

UBAH PANGKALAN DATA Aesop

TETAPKAN ALLOW_SNAPSHOT_ISOLATION HIDUP

| Untuk menyemak sama ada pengasingan syot kilat didayakan pada pangkalan data, jalankan pertanyaan SVS berikut: SELECT nama, snapshot_isolation_state_desc FROM [ * sysdatabases.

Kini transaksi pertama mula membaca dan kekal terbuka (iaitu tidak komited): GUNAKAN Aesop

MULAKAN TRAN PILIH Tajuk DARI FABLE DI MANA FablD = 2

Keputusan berikut akan diperolehi:

Pada masa ini, transaksi kedua mula mengemas kini baris yang sama yang dibuka oleh transaksi pertama:

TETAPKAN TAHAP PENGASINGAN TRANSAKSI Gambar;

MULAKAN TRAN UPDATE Fabel

Tajuk SET = 'Bergegar dengan Syot Kilat'

DIMANA FablD = 2;

PILIH * DARI FABLE DI MANA FablD = 2

Hasilnya adalah seperti berikut:

Bergoyang dengan Syot Kilat

Tidakkah itu menghairankan? Transaksi kedua dapat mengemas kini baris walaupun transaksi pertama masih dibuka. Mari kembali ke transaksi pertama dan lihat data asal:

PILIH Tajuk DARI FABLE DI MANA FablD = 2

Hasilnya adalah seperti berikut:

Jika anda membuka transaksi ketiga dan keempat, mereka akan melihat perkara yang sama nilai asal Kesatria Botak:

Walaupun selepas transaksi kedua melakukan perubahan, yang pertama masih akan melihat nilai asal, dan semua urus niaga seterusnya akan melihat nilai baharu, Bergoyang dengan Syot Kilat.

Menggunakan ISOLATION Read Commited Snapshot

Pengasingan Syot Kilat Read Commited didayakan menggunakan sintaks yang serupa:

UBAH PANGKALAN DATA Aesop

HIDUPKAN READ_COMMITTED_SNAPSHOT

Sama seperti pengasingan Syot Kilat, tahap ini Untuk mengalih keluar isu penyekatan, ia juga menggunakan versi rentetan. Menggunakan contoh yang diterangkan dalam bahagian sebelumnya sebagai asas, dalam kes ini transaksi pertama akan melihat perubahan yang dibuat oleh yang kedua sebaik sahaja ia dilakukan.

Oleh kerana Read Commited ialah tahap pengasingan lalai dalam SQL Server, hanya menetapkan parameter pangkalan data diperlukan.

Menyelesaikan Konflik Tulis

Data penulisan transaksi apabila tahap pengasingan Syot Kilat ditetapkan mungkin disekat oleh transaksi sebelumnya. urus niaga yang tidak disahkan rekod. Kunci sedemikian tidak akan menyebabkan transaksi baharu menunggu - ia hanya akan menghasilkan ralat. Untuk mengendalikan situasi sedemikian, gunakan ungkapan cuba. . . tangkap, tunggu beberapa saat dan cuba urus niaga sekali lagi.

Menggunakan pilihan menyekat

Parameter penyekatan membolehkan anda membuat pelarasan sementara pada strategi penyekatan. Walaupun tahap pengasingan mempengaruhi sambungan secara keseluruhan, pilihan mengunci adalah khusus untuk setiap jadual dalam pertanyaan tertentu (Jadual 51.5). Pilihan WITH (pilihan_kunci) diletakkan selepas nama jadual dalam klausa FROM pertanyaan. Untuk setiap jadual, anda boleh menentukan berbilang parameter, dipisahkan dengan koma.

Jadual 51.5. Pilihan menyekat

Parameter

menyekat

Penerangan

Tahap pengasingan. Tidak menetapkan atau memegang kunci. Bersamaan dengan tiada sekatan

Tahap pengasingan transaksi lalai

Tahap pengasingan. Memegang kunci bersama dan eksklusif sehingga transaksi disahkan

Tahap pengasingan. Memegang kunci kongsi sehingga transaksi selesai

Langkau baris yang disekat dan bukannya menunggu

Dayakan penguncian pada peringkat baris dan bukannya peringkat halaman, takat atau jadual

Dayakan penguncian peringkat halaman dan bukannya penguncian peringkat jadual

Peningkatan automatik kunci peringkat baris, halaman dan tahap kepada kebutiran peringkat jadual

Parameter

menyekat

Penerangan

Kegagalan untuk menggunakan atau mengekalkan kunci. Sama seperti ReadUnCommitted

Dayakan kunci meja eksklusif. Menghalang transaksi lain daripada berfungsi dengan jadual

Tahan kunci kongsi sehingga transaksi dilakukan (sama seperti Serializable)

Menggunakan kunci kemas kini dan bukannya kunci umum dan menahannya. Mengunci tulisan lain pada data antara bacaan awal dan penulisan

Memegang kunci data eksklusif sehingga transaksi disahkan

Contoh berikut menggunakan pilihan mengunci dalam klausa FROM pernyataan KEMASKINI untuk menghalang pengurus daripada meningkatkan butiran kunci:

GUNAKAN Produk KEMASKINI OBXKites

DARI Produk DENGAN (RowLock)

SET ProductName = ProductName + ' Dikemas kini 1

Jika pertanyaan mengandungi subkueri, ketahui bahawa akses jadual setiap pertanyaan menjana kunci, yang boleh dikawal menggunakan parameter.

Sekatan penguncian peringkat indeks

Tahap pengasingan dan tetapan penyekatan digunakan pada tahap sambungan dan permintaan. Satu-satunya cara Pengurusan kunci peringkat jadual adalah untuk mengehadkan butiran kunci berdasarkan indeks tertentu. Menggunakan prosedur tersimpan sistem sp_indexoption, kunci baris dan/atau halaman boleh dilumpuhkan untuk indeks tertentu menggunakan sintaks berikut: sp_indexoption 'index_name 1 .

AllowRowlocks atau AllowPagelocks,

Ini mungkin berguna dalam beberapa cara majlis-majlis khas. Jika jadual kerap mengalami penantian kerana kunci halaman, maka menetapkan allowpagelocks kepada mematikan akan mewujudkan penguncian peringkat baris. Butiran kunci yang dikurangkan akan memberi kesan positif kepada persaingan. Selain itu, jika jadual jarang dikemas kini tetapi dibaca dengan kerap, kunci peringkat baris dan halaman tidak diingini; Dalam kes ini, tahap penguncian optimum adalah pada tahap jadual. Jika kemas kini jarang dilakukan, maka penguncian eksklusif pada jadual tidak akan menyebabkan banyak masalah.

Prosedur tersimpan Sp_indexoption direka bentuk untuk memperhalusi skema data; itulah sebabnya ia menggunakan penguncian peringkat indeks. Untuk mengehadkan kunci pada kunci utama jadual, gunakan sp_help table_name untuk mencari nama indeks kunci utama.

Perintah berikut mengkonfigurasi jadual ProductCategory sebagai pengkategori yang jarang dikemas kini. Perintah sp_help mula-mula memaparkan nama indeks kunci utama jadual: sp_help ProductCategory

Hasilnya (dipotong) ialah:

indeks indeks indeks

kunci penerangan nama

PK_____________ Kategori Produk 79A814 03 tidak berkelompok, Kategori ProdukD

unik, kunci utama terletak di PRIMER

Memandangkan nama sebenar kunci utama, prosedur tersimpan sistem boleh menetapkan parameter penguncian indeks:

EXEC sp_indexoption

‘ProductCategory.РК__ ProductCategory_______ 7 9A814 03′,

'AllowRowlocks', FALSE EXEC sp_indexoption

‘ProductCategory.PK__ ProductCategory_______ 79A81403′,

'AllowPagelocks', SALAH

Menguruskan masa menunggu kunci

Jika transaksi sedang menunggu kunci, maka penantian ini akan diteruskan sehingga kunci menjadi mungkin. Secara lalai tiada had tamat masa - secara teorinya ia boleh bertahan selama-lamanya.

Nasib baik, anda boleh menetapkan tamat masa kunci menggunakan pilihan sambungan lock_timeout yang ditetapkan. Tetapkan parameter ini kepada bilangan milisaat, atau jika anda tidak mahu mengehadkan masa, tetapkannya kepada -1 (iaitu lalai). Jika parameter ini ditetapkan kepada 0, transaksi akan ditolak serta-merta jika terdapat sebarang sekatan. Dalam kes ini, permohonan itu akan menjadi sangat pantas, tetapi tidak berkesan.

Permintaan berikut menetapkan tamat masa kunci kepada dua saat (2000 milisaat):

SET Lock_Timeout 2 00 0

Jika transaksi melebihi had tamat masa yang dikonfigurasikan, nombor ralat 1222 dijana.

Saya amat mengesyorkan menetapkan had tamat masa kunci pada tahap sambungan. Nilai ini dipilih bergantung pada prestasi biasa Pangkalan data. Saya lebih suka menetapkan tamat masa kepada lima saat.

Menilai Prestasi Pertentangan Pangkalan Data

Sangat mudah untuk mencipta pangkalan data yang tidak menangani isu perbalahan dan perbalahan kunci apabila menguji sekumpulan pengguna. Ujian sebenar ialah apabila beberapa ratus pengguna mengemas kini pesanan secara serentak.

Ujian pertandingan perlu disusun dengan betul. Pada satu peringkat ia harus mengandungi penggunaan serentak ramai pengguna dalam bentuk akhir yang sama. Program .NET yang sentiasa menyerupai

pengguna melihat dan mengemas kini data. Ujian yang baik harus menjalankan 20 contoh skrip yang memuatkan pangkalan data secara berterusan, dan kemudian biarkan pasukan ujian menggunakan aplikasi itu. Bilangan kunci akan membantu anda melihat monitor prestasi yang dibincangkan dalam Bab 49.

Adalah lebih baik untuk menguji persaingan berbilang pemain beberapa kali semasa proses pembangunan. Seperti yang dinyatakan dalam manual peperiksaan MCSE, "jangan biarkan ujian dunia sebenar didahulukan."

Kunci aplikasi

SQL Server menggunakan sangat litar kompleks menyekat. Kadangkala proses atau sumber selain data memerlukan kunci. Sebagai contoh, mungkin perlu menjalankan prosedur yang menyebabkan kemudaratan jika pengguna lain menjalankan contoh lain prosedur yang sama.

Beberapa tahun yang lalu saya menulis program untuk kabel dalam projek loji tenaga nuklear. Setelah geometri tumbuhan direka bentuk dan diuji, jurutera memperkenalkan kompaun tersebut peralatan kabel, lokasinya dan jenis kabel yang digunakan. Selepas beberapa kabel dimasukkan, program membentuk laluan untuk meletakkannya supaya ia sesingkat mungkin. Prosedur ini juga mengambil kira isu keselamatan pengkabelan dan mengasingkan kabel yang tidak serasi. Pada masa yang sama, jika berbilang prosedur penghalaan dijalankan secara serentak, setiap kejadian akan cuba untuk menghalakan kabel yang sama, mengakibatkan keputusan yang salah. Penyekatan apl telah menjadi penyelesaian yang hebat untuk masalah ini.

Penguncian aplikasi membuka seluruh dunia kunci SQL untuk digunakan dalam aplikasi. Daripada menggunakan data sebagai sumber boleh dikunci, kunci aplikasi mengunci penggunaan semua sumber pengguna yang diisytiharkan dalam prosedur tersimpan sp__GetAppLock.

Penguncian aplikasi boleh digunakan dalam transaksi; dalam kes ini, mod sekatan boleh Dikongsi, Kemas Kini, Eksklusif, IntentExclusice atau IntentShared. Nilai pulangan daripada prosedur menunjukkan sama ada kunci telah digunakan dengan jayanya.

0. Kunci telah berjaya dipasang.

1. Kunci telah diperoleh apabila prosedur lain melepaskan kuncinya.

999. Kunci tidak dipasang atas sebab lain.

Prosedur tersimpan sp_ReleaseApLock melepaskan kunci. Contoh berikut menunjukkan cara kunci aplikasi boleh digunakan dalam kelompok atau prosedur: DECLARE @ShareOK INT EXEC @ShareOK = sp_GetAppLock

@Resource = 'CableWorm',

@LockMode = 'Eksklusif'

JIKA @ShareOK< 0

... Ralat mengendalikan kod

... Kod program ...

EXEC sp_ReleaseAppLock @Resource = 'CableWorm'

Apabila kunci aplikasi dilihat daripada menggunakan Pengurusan Prosedur studio atau sp_Lock, ia dipaparkan dengan jenis APP. Penyenaraian berikut ialah output dipendekkan sp_Lock berjalan pada masa yang sama dengan kod di atas: spid dbid Objld Indld Jenis Status Mod Sumber

57 8 0 0 APP Cabllf 94cl36 X GERAN

Terdapat dua perbezaan kecil yang perlu diperhatikan dalam cara kunci aplikasi dikendalikan dalam SQL Server:

Kebuntuan tidak dikesan secara automatik;

Jika transaksi memperoleh kunci beberapa kali, ia mesti melepaskannya dengan bilangan kali yang sama.

Kebuntuan

Kebuntuan ialah situasi istimewa yang berlaku hanya apabila transaksi dengan pelbagai tugas bersaing untuk sumber masing-masing. Sebagai contoh, transaksi pertama telah memperoleh kunci pada sumber A dan perlu mengunci sumber B, dan pada masa yang sama transaksi kedua, yang telah mengunci sumber B, perlu mengunci sumber A.

Setiap urus niaga ini menunggu yang lain melepaskan kuncinya, dan kedua-duanya tidak dapat diselesaikan sehingga ini berlaku. Jika tidak ada pengaruh luar atau salah satu urus niaga tamat atas sebab tertentu (contohnya, kerana tamat masa), maka keadaan ini boleh berterusan sehingga kiamat.

Sebelum ini, kebuntuan adalah masalah serius, tetapi SQL Server kini membolehkan anda menyelesaikannya dengan jayanya.

Mencipta Kebuntuan

Cara paling mudah untuk mencipta situasi kebuntuan dalam SQL Server ialah menggunakan dua sambungan dalam editor pertanyaan Studio Pengurusan (Rajah 51.12). Transaksi pertama dan kedua cuba mengemas kini baris yang sama, tetapi dalam susunan yang bertentangan. Menggunakan tetingkap ketiga untuk menjalankan prosedur pGetLocks, anda boleh memantau kunci.

1. Buat tetingkap kedua dalam editor pertanyaan.

2. Letakkan kod blok Langkah 2 dalam tetingkap kedua.

3. Letakkan kod blok Langkah 1 dalam tetingkap pertama dan tekan kekunci .

4. Dalam tetingkap kedua, laksanakan juga kod Langkah 2.

5. Kembali ke tetingkap pertama dan laksanakan kod blok Langkah 3.

6. Selepas tempoh yang singkat, SQL Server akan mengesan kebuntuan dan menyelesaikannya secara automatik.

Di bawah adalah contoh kod.

– Transaksi 1 — Langkah 1 GUNAKAN OBXKites MULAKAN KEMASKINI TRANSAKSI Kenalan

SET Nama Akhir = 'Jorgenson'

DI MANA Kod Kenalan = 401′

Puc. 51.12. Mencipta situasi kebuntuan dalam Studio Pengurusan menggunakan dua sambungan (tingkapnya terletak di bahagian atas)

Kini transaksi pertama telah memperoleh kunci eksklusif pada rekod dengan nilai 101 dalam medan ContactCode. Transaksi kedua akan memperoleh kunci eksklusif pada baris dengan nilai 1001 dalam medan ProductCode, dan kemudian cuba mengunci rekod yang telah dikunci secara eksklusif oleh transaksi pertama (ContactCode=101).

– Transaksi 2 — Langkah 2 GUNAKAN OBXKites MULAKAN KEMASKINI TRANSAKSI SET Produk Nama Produk

= 'Kit Pembaikan DeadLock'

WHERE Kod Produk = '1001'

SET FirstName = 'Neals'

WHERE ContactCode = '101'

KOMIT TRANSAKSI

Tiada jalan buntu lagi kerana transaksi 2 sedang menunggu transaksi 1 selesai, tetapi transaksi 1 belum lagi menunggu transaksi 2 selesai Dalam keadaan ini, jika transaksi 1 menyelesaikan kerjanya dan melaksanakan pernyataan TRANSAKSI KOMIT, sumber data akan. dilepaskan dan transaksi 2 akan selamat akan dapat menyekat blok yang dia perlukan dan meneruskan tindakannya.

Masalah berlaku apabila transaksi 1 cuba mengemas kini baris dengan ProductCode=l. Walau bagaimanapun, ia tidak akan menerima kunci eksklusif yang diperlukan untuk ini, kerana rekod ini dikunci oleh transaksi 2:

– Transaksi 1 – Langkah 3 KEMASKINI SET Produk Nama Produk

= 'Penguji Pengenalan DeadLock'

WHERE Kod Produk = '1001'

KOMIT TRANSAKSI

Transaksi 1 akan mengembalikan mesej teks ralat berikut selepas beberapa saat. Kebuntuan yang terhasil juga boleh dilihat dalam SQL Server Profiler (Rajah 51.13):

Pelayan: Msg 1205, Tahap 13,

Negeri 50, Urus Niaga Baris 1 (ID Proses 51) ialah

kebuntuan pada sumber kunci dengan proses lain dan telah dipilih sebagai mangsa kebuntuan. Jalankan semula transaksi.

Transaksi 2 akan menyelesaikan kerjanya seolah-olah masalah itu tidak pernah wujud:

(1 baris terjejas)

(1 baris terjejas)

nasi. 51.13. SQL Server Profiler membolehkan anda memantau kebuntuan menggunakan peristiwa Locks:Deadlock Graph dan mengenal pasti sumber yang menyebabkan kebuntuan

Pengesanan jalan buntu automatik

Seperti yang ditunjukkan dalam kod di atas, SQL Server secara automatik mengesan keadaan kebuntuan dengan menyemak proses menyekat dan melancarkan transaksi.

yang menyelesaikan kerja paling sedikit. SQL Server sentiasa menyemak kewujudan kunci silang. Latensi pengesanan jalan buntu boleh berbeza-beza dari sifar hingga dua saat (dalam amalan, paling lama saya terpaksa menunggu untuk ini ialah lima saat).

Mengendalikan Kebuntuan

Apabila kebuntuan berlaku, sambungan yang dipilih sebagai mangsa kebuntuan mesti mencuba semula transaksinya. Memandangkan kerja mesti dibuat semula, adalah baik bahawa urus niaga yang berjaya menyelesaikan paling sedikit kerja digulung semula - ia adalah yang akan diulang dari awal.

Kod ralat 12 05 harus ditangkap permohonan pelanggan, yang sepatutnya memulakan semula transaksi. Jika semuanya berlaku seperti yang diharapkan, pengguna tidak akan mengesyaki bahawa kebuntuan telah berlaku.

Daripada membenarkan pelayan sendiri memutuskan transaksi mana yang hendak dipilih sebagai "mangsa", transaksi itu sendiri boleh "dimainkan sebagai hadiah". Kod berikut, apabila diletakkan dalam transaksi, memberitahu SQL Server bahawa jika kebuntuan berlaku transaksi ini harus digulung semula:

SET DEADLOCKJKEUTAMAAN RENDAH

Meminimumkan kebuntuan

Walaupun kebuntuan mudah dikenal pasti dan dikendalikan, adalah lebih baik untuk mengelakkannya. Cadangan berikut akan membantu anda mengelakkan kebuntuan.

Cuba pastikan transaksi pendek dan bebas daripada kod yang tidak diperlukan. Jika sesetengah kod tidak perlu ada dalam transaksi, ia mesti disimpulkan daripadanya.

Jangan sekali-kali membuat kod transaksi bergantung pada input pengguna.

Cuba buat pakej dan prosedur yang memperoleh kunci dalam susunan yang sama. Sebagai contoh, jadual A diproses terlebih dahulu, kemudian jadual B, C, dsb. Oleh itu, satu prosedur akan menunggu untuk yang kedua dan kebuntuan tidak boleh berlaku mengikut definisi.

Reka reka letak fizikal untuk menyimpan data sampel serentak sedekat mungkin pada halaman data. Untuk mencapai matlamat ini, gunakan penormalan dan pilih indeks berkelompok dengan bijak. Mengurangkan penyebaran sekatan akan membantu mengelakkan peningkatannya. Sekatan kecil akan membantu mengelakkan persaingan mereka.

Jangan naikkan tahap penebat melainkan perlu. Tahap pengasingan yang lebih ketat meningkatkan tempoh penguncian.

Persekitaran SQL Server menyediakan beberapa binaan kawalan yang berbeza, tanpanya adalah mustahil untuk menulis algoritma yang berkesan.

Mengumpulkan dua atau lebih pasukan ke dalam blok tunggal dijalankan menggunakan kata kunci BEGIN dan END:

<блок_операторов>::=

Perintah berkumpulan dianggap sebagai satu arahan oleh jurubahasa SQL. Pengumpulan yang serupa diperlukan untuk pembinaan percabangan polivarian, pembinaan bersyarat dan kitaran. BERMULA...TAMAT blok boleh bersarang.

Beberapa arahan SQL tidak boleh dijalankan bersama-sama dengan arahan lain ( kita bercakap tentang tentang pasukan Salinan simpanan, perubahan pada struktur jadual, prosedur tersimpan, dan seumpamanya), oleh itu kemasukan bersama mereka dalam konstruk BEGIN...END tidak dibenarkan.

Selalunya bahagian tertentu program mesti dilaksanakan hanya jika beberapa syarat logik dipenuhi. Sintaks pernyataan bersyarat ditunjukkan di bawah:

<условный_оператор>::=

IF log_expression

( sql_statement | statement_block )

(sql_statement | statement_block) ]

Gelung disusun menggunakan pembinaan berikut:

<оператор_цикла>::=

WHILE log_expression

( sql_statement | statement_block )

( sql_statement | statement_block )

Gelung boleh dihentikan secara paksa dengan melaksanakan perintah BREAK dalam badannya. Jika anda perlu memulakan gelung sekali lagi tanpa menunggu semua arahan dalam badan dilaksanakan, anda mesti melaksanakan arahan CONTINUE.

Untuk menggantikan berbilang pernyataan bersyarat tunggal atau bersarang, gunakan binaan berikut:

<оператор_поливариантных_ветвлений>::=

CASE input_value

BILA (bandingkan_nilai |

log_ungkapan ) MAKA

keluaran_ungkapan [,...n]

[ ELSE otherwise_out_expression ]

Jika nilai input dan nilai perbandingan adalah sama, maka konstruk mengembalikan nilai output. Jika nilai parameter input tidak ditemui dalam mana-mana baris WHEN...THEN, maka nilai yang ditentukan selepas kata kunci ELSE akan dikembalikan.

Objek asas struktur pangkalan data pelayan SQL

Mari kita lihat struktur logik pangkalan data.

Struktur logik mentakrifkan struktur jadual, hubungan antara mereka, senarai pengguna, prosedur tersimpan, peraturan, lalai dan objek pangkalan data lain.

Secara logiknya, data dalam SQL Server disusun menjadi objek. Objek pangkalan data SQL Server utama termasuk objek berikut.

Ulasan ringkas objek pangkalan data utama.

Meja

Semua data dalam SQL terkandung dalam objek yang dipanggil meja. Jadual mewakili koleksi sebarang maklumat tentang objek, fenomena, proses dunia sebenar. Tiada objek lain menyimpan data, tetapi mereka boleh mengakses data dalam jadual. Jadual dalam SQL mempunyai struktur yang sama seperti jadual dalam semua DBMS lain dan mengandungi:

· garisan; setiap baris (atau rekod) mewakili satu set atribut (sifat) bagi contoh tertentu objek;

· lajur; setiap lajur (medan) mewakili atribut atau koleksi atribut. Medan rentetan ialah elemen minimum meja. Setiap lajur dalam jadual mempunyai nama, jenis data dan saiz tertentu.

Perwakilan

Paparan ialah jadual maya yang kandungannya ditentukan oleh pertanyaan. Seperti jadual sebenar, paparan mengandungi lajur bernama dan baris data. Untuk pengguna terakhir paparan kelihatan seperti jadual, tetapi ia sebenarnya tidak mengandungi data, sebaliknya mewakili data yang terletak dalam satu atau lebih jadual. Maklumat yang pengguna lihat melalui paparan tidak disimpan dalam pangkalan data sebagai objek yang berasingan.

Prosedur tersimpan

Prosedur tersimpan ialah sekumpulan perintah SQL yang digabungkan menjadi satu modul. Kumpulan arahan ini disusun dan dilaksanakan sebagai satu unit.

Pencetus

Pencetus ialah kelas khas prosedur tersimpan yang dilancarkan secara automatik apabila data ditambah, ditukar atau dipadamkan daripada jadual.

Fungsi

Fungsi dalam bahasa pengaturcaraan adalah binaan yang sering mengandungi kod boleh laku. Fungsi melakukan beberapa tindakan dengan data dan mengembalikan beberapa nilai.

Indeks

Indeks ialah struktur yang dikaitkan dengan jadual atau paparan dan direka bentuk untuk mempercepatkan carian maklumat di dalamnya. Indeks ditakrifkan pada satu atau lebih lajur, dipanggil lajur diindeks. Ia mengandungi nilai diisih bagi lajur atau lajur yang diindeks dengan rujukan kepada baris yang sepadan dalam jadual atau paparan sumber. Produktiviti yang lebih baik dicapai dengan mengisih data. Menggunakan indeks boleh meningkatkan prestasi carian dengan ketara, tetapi menyimpan indeks memerlukan ruang tambahan dalam pangkalan data.


©2015-2019 tapak
Semua hak milik pengarangnya. Laman web ini tidak menuntut pengarang, tetapi menyediakan penggunaan percuma.
Tarikh penciptaan halaman: 2016-08-08

01/05/15 28.1K

Kadang-kadang anda benar-benar ingin menyusun fikiran anda, menyusunnya. Dan lebih baik lagi, dalam urutan abjad dan tematik, supaya kejelasan pemikiran akhirnya datang. Sekarang bayangkan apa huru-hara yang akan berlaku dalam " otak elektronik» mana-mana komputer tanpa penstrukturan yang jelas bagi semua data dan Pelayan Microsoft SQL:

Pelayan MS SQL

Produk perisian ini ialah sistem pengurusan pangkalan data hubungan (DBMS) yang dibangunkan oleh Microsoft Corporation. Untuk manipulasi data, yang direka khas Bahasa Transact-SQL. Perintah bahasa untuk memilih dan mengubah suai pangkalan data dibina berdasarkan pertanyaan berstruktur:


Pangkalan data perhubungan data dibina atas kesalinghubungan semua elemen struktur, termasuk disebabkan oleh sarang mereka. Pangkalan data perhubungan mempunyai sokongan terbina dalam untuk jenis data yang paling biasa. Terima kasih kepada ini, SQL Server menyepadukan sokongan untuk menstrukturkan data secara pemrograman menggunakan pencetus dan prosedur tersimpan.

Gambaran Keseluruhan Ciri Pelayan MS SQL


DBMS adalah sebahagian daripada barisan panjang perisian khusus yang telah dicipta oleh Microsoft untuk pembangun. Ini bermakna semua pautan rantaian ini (aplikasi) disepadukan secara mendalam antara satu sama lain.

Iaitu, alat mereka mudah berinteraksi antara satu sama lain, yang sangat memudahkan proses pembangunan dan penulisan kod program. Contoh perhubungan sedemikian ialah persekitaran pengaturcaraan MS Visual Studio. Pakej pemasangannya sudah termasuk SQL Server Express Edition.

Sudah tentu, ini bukan satu-satunya DBMS yang popular di pasaran dunia. Tetapi ia adalah tepat yang lebih diterima untuk komputer yang menjalankan Windows, kerana tumpuannya pada sistem pengendalian ini. Dan bukan sahaja kerana ini.

Kelebihan MS SQL Server:

  • Mempunyai tahap prestasi yang tinggi dan toleransi kesalahan;
  • Ia adalah DBMS berbilang pengguna dan beroperasi pada prinsip pelayan-pelanggan;

    Bahagian klien sistem menyokong membuat permintaan pengguna dan menghantarnya ke pelayan untuk diproses.

  • Penyepaduan ketat dengan sistem operasi Windows;
  • Sokongan untuk sambungan jauh;
  • Sokongan untuk jenis data popular, serta keupayaan untuk mencipta pencetus dan prosedur tersimpan;
  • Sokongan terbina dalam untuk peranan pengguna;
  • Fungsi sandaran pangkalan data lanjutan;
  • Tahap keselamatan yang tinggi;
  • Setiap keluaran termasuk beberapa edisi khusus.

Evolusi Pelayan SQL

Ciri-ciri DBMS popular ini paling mudah dilihat apabila mempertimbangkan sejarah evolusi semua versinya. Kami akan membincangkan dengan lebih terperinci hanya pada keluaran yang mana pembangun membuat perubahan penting dan asas:

  • Microsoft SQL Server 1.0 – dikeluarkan pada tahun 1990. Walaupun begitu, pakar menyatakan kelajuan tinggi pemprosesan data, ditunjukkan walaupun dengan beban maksimum dalam mod berbilang pengguna;
  • SQL Server 6.0 - dikeluarkan pada tahun 1995. Versi ini adalah yang pertama di dunia untuk melaksanakan sokongan untuk kursor dan replikasi data;
  • SQL Server 2000 - dalam versi ini pelayan menerima enjin baharu sepenuhnya. Kebanyakan perubahan hanya terjejas sisi pengguna permohonan;
  • SQL Server 2005 – skalabiliti DBMS telah meningkat, dan proses pengurusan dan pentadbiran telah dipermudahkan dalam pelbagai cara. Telah dilaksanakan API baharu untuk sokongan platform perisian.BERSIH ;
  • Keluaran seterusnya bertujuan untuk membangunkan interaksi DBMS di peringkat tersebut teknologi awan dan alat analisis perniagaan.

DALAM kit asas Sistem ini merangkumi beberapa utiliti untuk Tetapan SQL Pelayan. Ini termasuk:


Pengurus Konfigurasi. Membolehkan anda menguruskan segala-galanya tetapan rangkaian dan perkhidmatan pelayan pangkalan data. Digunakan untuk mengkonfigurasi SQL Server dalam rangkaian.


Utiliti digunakan untuk mengkonfigurasi penghantaran laporan ralat kepada sokongan Microsoft.


Digunakan untuk mengoptimumkan operasi pelayan pangkalan data. Iaitu, anda boleh menyesuaikan fungsi SQL Server untuk memenuhi keperluan anda dengan mendayakan atau melumpuhkan ciri dan komponen tertentu DBMS.

Set utiliti yang disertakan dalam Microsoft SQL Server mungkin berbeza bergantung pada versi dan edisi pakej perisian. Sebagai contoh, dalam versi 2008 anda tidak akan dapati Konfigurasi Kawasan Permukaan Pelayan SQL.

Memulakan Microsoft SQL Server

Sebagai contoh, versi 2005 pelayan pangkalan data akan digunakan. Pelayan boleh dimulakan dalam beberapa cara:

  • Melalui utiliti Pengurus Konfigurasi Pelayan SQL. Dalam tetingkap aplikasi di sebelah kiri, pilih "SQL Server 2005 Services", dan di sebelah kanan - contoh pelayan pangkalan data yang kami perlukan. Kami menandakannya dalam submenu butang kanan tetikus pilih “Mula”.

  • Menggunakan persekitaran Studio Pengurusan Pelayan SQL Express. Ia tidak termasuk dalam pakej pemasangan edisi Express. Oleh itu, ia mesti dimuat turun secara berasingan daripada laman web rasmi Microsoft.

Untuk memulakan pelayan pangkalan data, lancarkan aplikasi. Dalam kotak dialog " Sambungan ke pelayan"Dalam medan "Nama pelayan", pilih contoh yang kami perlukan. Di padang" Pengesahan"tinggalkan nilai" Pengesahan Windows" Dan klik pada butang "Sambung":

Asas Pentadbiran Pelayan SQL

Sebelum anda memulakan MS SQL Server, anda perlu membiasakan diri secara ringkas dengan keupayaan asas konfigurasi dan pentadbirannya. Mari mulakan dengan lebih banyak lagi ulasan terperinci beberapa utiliti daripada DBMS:

  • Konfigurasi Kawasan Permukaan Pelayan SQL– di sinilah anda harus pergi jika anda perlu mendayakan atau melumpuhkan sebarang ciri pelayan pangkalan data. Di bahagian bawah tetingkap terdapat dua titik: yang pertama bertanggungjawab untuk parameter rangkaian, dan dalam detik anda boleh mengaktifkan perkhidmatan atau fungsi yang dilumpuhkan secara lalai. Sebagai contoh, dayakan penyepaduan dengan platform .NET melalui pertanyaan T-SQL: