08.08.2023
Rumah / Bekerja di Internet / Tingkat paralelisme maksimal - pemilihan nilai optimal. Hotspot - Opsi Tingkat Paralelisme Maksimum Sql tingkat maksimum paralelisme

Tingkat paralelisme maksimal - pemilihan nilai optimal. Hotspot - Opsi Tingkat Paralelisme Maksimum Sql tingkat maksimum paralelisme

Max degree of parallelism (DOP) adalah opsi konfigurasi SQL Server lanjutan yang telah menjadi subjek dari banyak pertanyaan dan telah menjadi subjek dari banyak publikasi. Dalam posting blog ini, penulis berharap dapat memberikan kejelasan tentang apa yang dilakukan opsi ini dan bagaimana penggunaannya.

Pertama, penulis ingin menghilangkan keraguan bahwa opsi di atas menetapkan berapa banyak prosesor yang dapat digunakan SQL Server saat melayani banyak koneksi (atau pengguna) - ternyata tidak! Jika SQL Server memiliki akses ke empat prosesor menganggur dan dikonfigurasi untuk menggunakan keempat prosesor, itu akan menggunakan keempat prosesor terlepas dari tingkat maksimum paralelisme.

Jadi apa yang dilakukan opsi ini? Opsi ini menetapkan jumlah maksimum prosesor yang dapat digunakan SQL Server untuk satu kueri. Jika kueri ke SQL Server harus dikembalikan volume besar data (banyak catatan), terkadang masuk akal untuk memparalelkannya dengan memecahnya menjadi beberapa kueri kecil, yang masing-masing akan mengembalikan subset barisnya sendiri. Jadi SQL Server dapat menggunakan banyak prosesor, dan karenanya pada sistem multiprosesor sejumlah besar catatan dari seluruh kueri berpotensi dikembalikan lebih cepat daripada sistem uniprosesor.

Ada banyak kriteria yang harus dipertimbangkan sebelum SQL Server memanggil "Intra Query Parallelism" (menyebarkan kueri ke beberapa utas), dan tidak ada gunanya merincinya di sini. Anda dapat menemukannya di BOL dengan mencari "Degree of parallelism". Dikatakan bahwa keputusan paralelisasi didasarkan pada ketersediaan memori untuk prosesor dan, terutama, pada ketersediaan prosesor itu sendiri.

Jadi, mengapa kita harus mempertimbangkan untuk menggunakan opsi ini karena membiarkannya pada nilai default (SQL Server memutuskan paralelisasi itu sendiri) terkadang dapat menimbulkan efek yang tidak diinginkan. Efek ini terlihat seperti ini:

  • Kueri paralel berjalan lebih lambat.
  • Waktu eksekusi kueri bisa menjadi non-deterministik, dan ini bisa mengganggu pengguna. Waktu eksekusi dapat berubah karena:
    • Kueri terkadang dapat diparalelkan dan terkadang tidak.
    • Permintaan dapat diblokir oleh permintaan paralel jika prosesor sebelumnya kelebihan beban kerja.

Sebelum kita melanjutkan, penulis ingin mencatat bahwa tidak ada kebutuhan khusus untuk menyelami organisasi paralelisme internal. Jika Anda tertarik dengan ini, Anda dapat membaca artikel "Pemrosesan Kueri Paralel" di Books on Line, di mana informasi ini disajikan lebih detail. Penulis percaya bahwa hanya ada dua hal penting yang perlu diketahui tentang organisasi paralelisme internal:

  1. Permintaan paralel dapat menelurkan lebih banyak utas daripada yang ditentukan dalam opsi "Max degree of parallelism". DOP 4 dapat menelurkan lebih dari dua belas utas, empat untuk kueri dan utas tambahan yang digunakan untuk pengurutan, utas, agregat dan rakitan, dan seterusnya.
  2. Paralelisme kueri dapat menyebabkan SPID menunggu berbeda dengan tipe tunggu CXPACKET atau 0X0200. Ini dapat digunakan untuk menemukan SPID yang sedang menunggu operasi paralel dan memiliki waittype: CXPACKET di sysprocesses. Untuk memudahkan tugas ini, penulis menyarankan untuk menggunakan stored procedure yang tersedia di blognya: track_waitstats.

Jadi "Kueri dapat berjalan lebih lambat saat diparalelkan" mengapa?

  • Jika sistemnya sangat lemah throughput subsistem disk, maka saat mem-parsing kueri, penguraiannya bisa memakan waktu lebih lama daripada tanpa paralelisme.
  • Kemungkinan kemiringan data atau kunci rentang data untuk prosesor, dihasilkan oleh proses lain yang digunakan secara paralel dan diluncurkan kemudian, dll.
  • Jika tidak ada indeks untuk predikat, yang menghasilkan pemindaian tabel. Operasi paralel dalam kueri dapat menyembunyikan fakta bahwa kueri akan berjalan lebih cepat dengan rencana eksekusi berurutan dan dengan indeks yang tepat.

Efek paralelisme yang disebutkan di atas seharusnya mengarahkan Anda pada gagasan bahwa mekanisme internal paralelisasi kueri tidak cocok untuk digunakan dalam aplikasi OLTP. Ini adalah aplikasi yang mengubah waktu eksekusi kueri dapat mengganggu pengguna dan server yang melayani banyak pengguna pada saat yang sama tidak mungkin memilih rencana eksekusi paralel karena karakteristik yang melekat pada profil beban kerja prosesor dalam aplikasi ini.

Oleh karena itu, jika Anda akan menggunakan paralelisme, kemungkinan besar itu akan diperlukan untuk tugas ekstraksi data (gudang data), sistem pendukung keputusan atau pelaporan, di mana tidak banyak kueri, tetapi cukup berat dan dijalankan dengan kuat server dengan sejumlah besar memori operasional.

Jika Anda memutuskan untuk menggunakan paralelisme, berapa nilai yang harus Anda tetapkan untuk DOP?. Ini adalah praktik yang baik untuk mekanisme ini bahwa jika Anda memiliki 8 prosesor kemudian atur DOP = 4 dan ini kemungkinan besar merupakan pengaturan yang optimal. Namun, tidak ada jaminan bahwa cara ini akan berhasil. Satu-satunya cara untuk memastikannya adalah dengan menguji nilai DOP yang berbeda. Selain itu, penulis ingin menawarkan saran empirisnya, jangan pernah menetapkan angka ini lebih dari setengah jumlah prosesor yang tersedia. Jika penulis memiliki kurang dari enam prosesor, dia akan menyetel DOP ke 1, yang akan menonaktifkan paralelisasi. Itu mungkin membuat pengecualian jika memiliki database yang hanya mendukung proses pengguna tunggal (beberapa teknologi pengambilan data atau tugas pelaporan), dalam hal ini, sebagai pengecualian, dimungkinkan untuk mengatur DOP ke 0 (default), yang mana memungkinkan SQL Server memutuskan sendiri apakah akan memparalelkan kueri.

Sebelum mengakhiri artikel, penulis ingin mengingatkan Anda bahwa pembuatan indeks secara paralel bergantung pada angka yang Anda tetapkan untuk DOP. Ini berarti Anda mungkin ingin mengubahnya pada saat membuat atau membuat ulang indeks untuk meningkatkan kinerja operasi ini, dan, tentu saja, Anda dapat menggunakan petunjuk MAXDOP dalam kueri, yang memungkinkan Anda mengabaikan nilai yang ditetapkan di konfigurasi dan dapat digunakan selama jam off.

Terakhir, permintaan Anda mungkin melambat saat diparalelkan karena kesalahan, jadi pastikan Anda telah menginstal paket layanan terbaru di server Anda.

REATE proc track_waitstats
@num_samples int = 10
, @delaynum int = 1
,@delaytype nvarchar ( 10 )="menit"
SEBAGAI
-- T. Davidson
-- Prosedur tersimpan ini disediakan =SEBAGAIMANA ADANYA= tanpa jaminan,
- dan konferensi tidak ada hak.
-- Penggunaan sampel skrip yang disertakan tunduk pada persyaratan
-- ditentukan di http://www.microsoft.com/info/cpyright.htm
-- @num_samples adalah berapa kali untuk menangkap status tunggu,
-- standarnya adalah 10 kali. interval penundaan default adalah 1 menit
-- delaynum adalah interval penundaan. delaytype menentukan apakah
- Interval penundaan adalah menit atau detik
-- buat tabel waitstats jika tidak ada, jika tidak, potong

tidak menghitung
jika tidak ada (pilih 1 dari sysobjects di mana name = "waitstats" )
buat tabel waitstats(varchar( 80 ),
meminta numerik ( 20 ,1 ),
numerik ( 20 ,1 ),
numerik ( 20 ,1 ),
sekarang datetime default getdate())
selain itu, potong tabel waitstats

dbcc sqlperf (waitstats,clear) -- bersihkan waitstats

nyatakan @i int
,@penundaan varchar ( 8 )
,@dt varchar( 3 )
, @sekarang datetime
,@totalwait numerik ( 20 ,1 )
, @waktu akhir waktu
,@begintime datetime
,@jam int
, @ min int
,@detik int

pilih @i = 1
pilih @dt = huruf kecil (@delaytype)
ketika "menit" lalu "m"
ketika "menit" lalu "m"
ketika "min" lalu "m"
ketika "mm" lalu "m"
ketika "mi" lalu "m"
ketika "m" lalu "m"
ketika "detik" lalu "s"
ketika "kedua" lalu "s"
ketika "detik" lalu "s"
ketika "ss" lalu "s"
ketika "s" lalu "s"
lain @delaytype
akhir

jika @dt tidak di ("s" , "m" )
mulai
mencetak "harap berikan jenis penundaan, misalnya detik atau menit"
kembali
akhir

jika @dt = "s"
mulai
pilih @sec = @delaynum % 60
pilih @min = cast((@delaynum / 60 ) sebagai int )
pilih @hr = cast((@min / 60 ) sebagai int )
pilih @min = @min % 60
akhir

jika @dt = "m"
mulai
pilih @detik= 0
pilih @min = @delaynum % 60
pilih @hr = cast((@delaynum / 60 ) sebagai int )
akhir

pilih @delay = right("0" + convert(varchar( 2 ),@jam), 2 ) + ":" +
2 ),@menit), 2 ) + ":" +
+ benar("0" +mengubah(varchar( 2 ),@detik), 2 )

jika @ jam > 23 atau @min > 59 atau @detik > 59
mulai
Pilih "hh:mm:ss waktu tunda tidak bisa > 23:59:59"
pilih "delay interval dan ketik: " + convert (varchar ( 10 )
,@delaynum) + "," + @delaytype + " ubah menjadi "
+ @penundaan
kembali
akhir

ketika saya<= @num_samples)
mulai
masukkan ke dalam waitstats(, permintaan,
,)
exec("dbcc sqlperf(waitstats)" )
pilih @i = @i + 1
tunggu tunda @ tunda
akhir

Buat laporan status tunggu
jalankan get_waitstats

--//--//--//--//--//--//--//--//--//-//--//--//--//--//--//--//--//--/

BUAT proc get_waitstats
SEBAGAI
-- Prosedur tersimpan ini disediakan =SEBAGAIMANA ADANYA= tanpa jaminan, dan
-- konferensi tanpa hak.
-- Penggunaan sampel skrip yang disertakan tunduk pada ketentuan yang ditentukan
-- di http://www.microsoft.com/info/cpyright.htm
--
-- proc ini akan membuat daftar laporan waitstats jenis wait by
-- persentase
-- dapat dijalankan saat track_waitstats dijalankan

tidak menghitung

menyatakan @sekarang datetime
,@totalwait numerik ( 20 ,1 )
, @waktu akhir waktu
,@begintime datetime
,@jam int
, @ min int
,@detik int

pilih @now=max (sekarang),@begintime=min (sekarang),@endtime=max (sekarang)
dari waitstats dimana = "Total"

Kurangi waitfor, sleep, dan resource_queue dari Total

pilih @totalwait = jumlah() + 1 dari waitstats
di mana tidak di ("WAITFOR" ,"SLEEP" ,"RESOURCE_QUEUE"
, "Total" , "***total***" ) dan sekarang = @sekarang

Masukkan total yang disesuaikan, urutkan berdasarkan persentase menurun

hapus status tunggu di mana = "***total***" dan sekarang = @sekarang

masukkan ke dalam waitstats pilih "***total***"
,0
, @totaltunggu
, @totaltunggu
,@Sekarang

Pilih
,
,persentase = pemeran ( 100 */@totaltunggu sebagai numerik ( 20 ,1 ))
dari waitstats
di mana tidak di ("WAITFOR" ,"SLEEP" ,"RESOURCE_QUEUE" ,"Total" )
dan sekarang = @sekarang
pesan berdasarkan persentase desc

Dalam catatan singkat ini, saya ingin berbicara sedikit tentang seluk-beluk pengaturan konkurensi di Microsoft SQL Server. Banyak dari Anda telah lama mengetahui opsi Max Degree od Parallelism, yang telah hadir di SQL Server sejak lama. Secara default, ini disetel ke 0, yang berarti bahwa SQL Server akan memilih sendiri tingkat paralelisme yang optimal, yaitu jumlah prosesor / utas yang terlibat dalam menjalankan satu instruksi. Saya tidak akan berhenti sekarang dan membahas nilai apa yang lebih baik untuk menyetel opsi ini - ini adalah topik untuk catatan terpisah. Saya hanya akan mempertimbangkan bagaimana nilai opsi ini memengaruhi eksekusi kueri. Misalnya, pada gambar di bawah, opsi ini disetel ke 1, yang berarti paket paralel untuk semua kueri dinonaktifkan secara default.

Opsi ini juga tersedia untuk dilihat dengan perintah T-SQL berikut:

Memang, rencana kueri default apa pun akan berurutan. Misalnya:

Namun, pengembang dan pengguna mana pun masih memiliki kesempatan untuk memengaruhinya melalui penggunaan petunjuk. Untuk melakukan ini, Anda hanya perlu menentukan tingkat paralelisme yang diinginkan, dan rencana kueri yang diinginkan dibuat, misalnya:

Dan jika kita mengamati kueri ini melalui tampilan sys.dm_exec_query_profiles, kita akan melihat bahwa kueri ini memang dieksekusi dalam 10 utas.

Dengan demikian, masih ada lubang rahasia dalam sistem yang dapat digunakan pengembang dan pengguna untuk "mempercepat" (di sini saya secara khusus memasukkannya ke dalam tanda kutip, karena tingkat paralelisme yang tinggi tidak selalu menyebabkan penurunan waktu eksekusi kueri) kueri mereka dengan meningkatkan derajat paralelisme. Namun, dengan cara ini, mereka dapat dengan mudah "membunuh" server dengan meluncurkan banyak permintaan paralel yang tidak terkontrol pada saat yang bersamaan. Apa boleh buat? Di sinilah Gubernur Sumber Daya datang untuk menyelamatkan, sistem yang sangat kuat dan benar-benar diremehkan yang memungkinkan Anda mendistribusikan sumber daya dengan sangat fleksibel di antara kelompok pengguna yang berbeda. Sekali lagi, saya tidak akan memikirkan cara kerjanya dan kemampuan apa yang dimilikinya. Saya hanya akan menguraikan bagaimana pengaturan batas konkurensinya memengaruhinya. Pertama-tama mari kita lihat pengaturan default:

Sekali lagi, kita melihat bahwa opsi diatur ke 0 secara default dan keputusan untuk memilih tingkat maksimum bergantung pada SQL Server. Sekarang mari kita lihat apa yang terjadi jika saya mengubah nilai ini menjadi 5. Saya bahkan belum mendefinisikan fungsi klasifikasi untuk Gubernur Sumber Daya dan sedang mengubah grup default. Tapi untuk ujian dan pemahaman bagaimana semuanya bekerja sekarang dalam contoh saya, ini sudah cukup. Jadi, saya membatasi tingkat paralelisme maksimum untuk setiap orang hingga 5 utas. Ingat bahwa pilihan Derajat Paralelisme Maksimum, yang kita lihat sebelumnya, masih disetel ke 1. Jika sekarang kita melihat rencana eksekusi dari kueri awal kita, maka secara default akan berurutan, dan dengan opsi maxdop 10, akan paralel. Tapi, jika kita menjalankan rencana paralel, kita akan melihat sesuatu yang menarik.

Sekarang permintaan kami dieksekusi hanya dalam 5 utas, terlepas dari kenyataan bahwa ada opsi maxdop itu memiliki nilai 10. Dan, jika Anda menentukan opsi maxdop 4 untuk kueri, itu akan dieksekusi dalam 4 utas (opsi di Pengatur Sumber Daya diatur ke 5). Dalam hal ini, petunjuknya maxdop kurang dari pengaturan Gubernur Sumber Daya, sehingga tidak ada batasan tambahan yang dikenakan. Saya tidak lagi memberi contoh tentang ini.

Dengan demikian, Resource Governor adalah alat yang lebih kuat yang sudah benar-benar membatasi tingkat maksimum paralelisme untuk kueri, dan tingkat ini dapat diatur secara berbeda untuk grup pengguna yang berbeda. Pada saat yang sama, opsi Derajat Paralelisme Maksimum masih berfungsi dan berfungsi (atau sedikit membingungkan admin, pengembang, dan pengguna saat dipasangkan dengan Gubernur Sumber Daya). Selanjutnya, opsi untuk mengatur nilai dari 2 parameter ini hanya dibatasi oleh imajinasi Anda, tetapi penting untuk mengingat hanya dua hal: Derajat Paralelisme Maksimum dan petunjuk maxdop karena permintaan memengaruhi rencana mana yang akan dibuat, berapa banyak jumlah maksimum utas yang dimungkinkan untuk permintaan ini, dan Gubernur Sumber Daya selanjutnya membatasi permintaan dari atas yang sudah ada saat waktu proses.

Target: mempelajari dampak paralelisme SQL dalam bekerja dengan kueri 1C

Literatur:

Lingkungan pengujian:

Perusahaan Windows Server 2008 R2

MS SQL Server 2008 R2

Perusahaan 1C 8.2.19.90

Gambar 1. Properti SQL “Umum”


Gambar 2. Properti SQL "Advanced"

Peralatan:

Profiler server SQL

Konsol Kueri 1C

Permintaan tes:

MEMILIH

AK.Nama SEBAGAI Nama

DARI

Daftar Informasi Pengklasifikasi Alamat AS AK

GABUNG DALAM Daftar Informasi Pengklasifikasi Alamat AS AK1

SW AK.Kode = AK1.Kode

Persiapan:

Kami memulai SQL server Profiler, membuat koneksi, menandai peristiwa dan kolom seperti yang ditunjukkan pada Gambar 3.


Gambar 3. Lacak properti

Menyiapkan pilihan untuk basis kami


Gambar 4. Filter berdasarkan database

Singkatan:

Tingkat paralelisme maksimum – MDOP

Ambang batas biaya untuk paralelisme - biaya

Menguji rencana kueri berurutan (MDOP = 1)


Gambar 5. Query Console - waktu eksekusi 20 detik

Parameter SQL server "Max degree of parallelism" diatur ke 1 (tanpa paralelisme). Kami melihat hasilnya di profiler (Gbr. 6)


Gambar 6. Rencana kueri berurutan

SQL server menghasilkan rencana kueri berurutan, sementara: total beban CPU = 6,750 (detik), dan waktu eksekusi kueri = 7,097 (detik)

Pengujian rencana kueri paralel (MDOP = 0, biaya =5)

Kami menempatkan server SQL ke mode paralelisme (dalam SQL Query):

GUNAKAN master ;

EXEC sp_configure "tampilkan opsi lanjutan", 1;

KONFIGURASI ULANG DENGAN OVERRIDE

GUNAKAN master ;

exec sp_configure "max degree of parallelism" , 0;

KONFIGURASI ULANG DENGAN OVERRIDE

Mengeksekusi kueri yang sama (Gambar 7)


Gambar 7. Query Console - waktu eksekusi 16 detik

Memeriksa hasilnya di profiler (Gambar 8)


Gambar 8. Rencana kueri paralel

SQL server kali ini membentuk rencana kueri paralel, dengan total beban CPU = 7,905 detik, dan durasi kueri = 3,458 detik

Menguji rencana kueri berurutan (MDOP = 0, biaya = 150)

Mari kita coba singkirkan paket paralel menggunakan parameter "Biaya ambang paralelisme". Secara default, parameter disetel ke 5. Dalam kasus kami, kami berhasil menyingkirkan pembentukan paket paralel dengan nilai 150 (dalam SQL Query):

GUNAKAN master ;

exec sp_configure "ambang biaya untuk paralelisme", 150 ;

Kami memeriksa eksekusi permintaan dalam kondisi ini (Gbr. 9)

Gambar 9. Query Console - waktu eksekusi 20 detik

Kami memeriksa hasilnya di profiler (Gbr. 10)


Gambar 10. Rencana kueri berurutan.

SQL Server telah menghasilkan rencana kueri berurutan. Total penggunaan CPU = 7,171 detik, waktu eksekusi kueri = 7,864 detik.

Kesimpulan:

Eksekusi kueri pengujian di lingkungan 1C Enterprise menggunakan paket kueri paralel server SQL memberikan peningkatan kinerja yang signifikan dibandingkan dengan paket sekuensial (16 detik vs. 20 detik - memperoleh 4 detik.)

Menguji eksekusi kueri oleh SQL Server sendiri saat menggunakan paket kueri paralel dua kali lebih cepat dibandingkan saat menggunakan paket kueri serial (3,5 detik vs. 7,1 detik)

Paralelisme server SQL dapat disesuaikan tidak hanya menggunakan parameter MDOP, tetapi juga parameter "Tambang biaya untuk paralelisme"

  • tutorial

Panduan ini ditujukan untuk pemula yang mencari panduan sederhana dalam bahasa Rusia untuk menginstal SQL Server 2012 versi bahasa Inggris, yang akan digunakan untuk SharePoint 2013.
Artikel ini bukan untuk para profesional.

Semua pekerjaan dibagi menjadi 3 tahap:

  • Menginstal SQL Server 2012
  • Mengatur tingkat maksimum opsi konfigurasi server paralelisme
  • Mengonfigurasi hak akun yang dimaksudkan untuk menginstal SharePoint 2013
Artikel tersebut juga menjelaskan proses penginstalan Microsoft .NET Framework 3.5 di MS Windows Server 2012 R2 Standard.

Perhatian: ada banyak gambar di bawah potongan!

Menginstal SQL Server 2012

1. Sebelum penginstalan, Anda harus memastikan bahwa ada cukup ruang kosong di hard drive Anda (dalam kasus saya, dibutuhkan 2,7 GB).
Setelah memulai kit distribusi, pilih item " Instalasi" di menu sebelah kiri, lalu "klik" item " SQL Server baru berdiri sendiri atau menambahkan fitur ke instalasi yang sudah ada":

2. Panduan penginstalan akan dimulai. Dia akan memeriksa. Anda dapat mengklik tombol "Tampilkan detail" dan melihat laporan terperinci:

3. Laporan rinci. Tekan tombol "OK":

4. Masukkan kunci produk dan klik tombol "Berikutnya":

5. Kami menyetujui persyaratan perjanjian lisensi.
Untuk melakukan ini, centang kotak Saya menerima persyaratan lisensi

6. Pada langkah "Atur Peran", pilih item pertama " Instalasi Fitur SQL Server". Tekan tombol "Berikutnya":

7. Pada langkah "Pemilihan Fitur", centang " Layanan Mesin Basis Data", "Alat Manajemen-Dasar" Dan " Alat Manajemen - Lengkap". Kemudian klik tombol "Berikutnya":

8. Pemasang kemudian akan melakukan pemeriksaan lagi. Anda dapat mengklik tombol "Tampilkan detail" dan melihat laporan terperinci:

9. Laporan rinci. (Pada tahap ini, saya mendapat kesalahan dalam aturan "Microsoft .NET Framework 3.5 diinstal ...". Lebih lanjut di bawah). Tekan tombol "Berikutnya":

10. Pada langkah "Instance Configuration", Anda harus mengonfigurasi instance layanan SQL Server.
Sekali lagi, artikel ini untuk pemula. Oleh karena itu, kami akan berasumsi bahwa SQL Server belum diinstal di server Anda sebelumnya, yang berarti kami akan membiarkan semua pengaturan default. Tekan tombol "Berikutnya":

11. Pada langkah ini, wizard penginstalan akan menampilkan persyaratan ruang disk. Tekan tombol "Berikutnya":

12. Pada langkah "Konfigurasi Server", Anda harus menentukan akun domain untuk layanan " Mesin Basis Data SQL Server". Setelah mengisi kolom "Nama Akun" dan "Kata Sandi", klik tombol "Berikutnya":

13. Pada langkah "Konfigurasi Mesin Database", cukup menambahkan pengguna saat ini ke administrator server SQL. Untuk melakukan ini, klik tombol "Tambah Pengguna Saat Ini", lalu klik tombol "Berikutnya":

14. Pada langkah selanjutnya, klik tombol "Berikutnya":

15. Selanjutnya wizard instalasi akan melakukan test kembali dan menampilkan hasilnya. Tekan tombol "Berikutnya":

16. Pada langkah "Ready to Install", wizard akan menampilkan informasi ringkasan. Di sini Anda perlu mengklik tombol "Instal":

17. Setelah penginstalan selesai, informasi tentang operasi yang dilakukan akan ditampilkan:

18. Saya sangat menyarankan Anda me-restart komputer Anda pada tahap ini. Dalam beberapa kasus (misalnya, saat menginstal Microsoft .NET Framework 3.5), wizard penginstalan itu sendiri akan menampilkan jendela yang meminta Anda untuk me-restart komputer. Jangan menyerah.

Mengatur tingkat maksimum opsi konfigurasi server paralelisme

Nilai default untuk parameter "Max Degree of Parallelism" adalah 0.
SharePoint 2013 memerlukan pengaturan ini menjadi 1.
Mudah diperbaiki!

1. Lari Studio Manajemen Microsoft SQL Server(Mulai - Semua Program - Microsoft SQL Server 2012 - SQL Server Management Studio).

2. Pada layar koneksi server, klik tombol Hubungkan.

3. Klik kanan pada server Anda di " Penjelajah Objek" dan pilih " Properti":

4. Di jendela properti server yang terbuka, di menu sebelah kiri, pilih halaman " Canggih" dan gulir daftar properti ke bagian paling bawah layar. Tetapkan nilai parameter " Derajat Paralelisme Maksimum" V 1 dan klik tombol "OK":

5. Jangan tutup SQL Server Management Studio, kami masih membutuhkannya.

Mengonfigurasi hak akun yang dimaksudkan untuk menginstal SharePoint 2013

Akun tempat SharePoint 2013 akan diinstal harus ditinggikan di SQL Server.
Disarankan agar akun ini diberikan peran berikut:
  • dbcreator
  • securityadmin
  • publik
1. Di SQL Server Management Studio, di " Penjelajah Objek"perluas item" keamanan". Kemudian klik kanan pada " Login" dan pilih " Masuk Baru":

2. Di kolom "Login name", masukkan nama domain akun tempat Anda berencana menginstal dan mengonfigurasi SharePoint 2013.

3. Di menu sebelah kiri, pilih halaman " Peran Server" dan centang peran "dbcreator" dan "securityadmin", dan pastikan peran "public" sudah dicentang. Kemudian klik tombol "OK":

SQL Server sekarang siap untuk menginstal SharePoint 2013.

Menginstal Microsoft .NET Framework 3.5 di MS Windows Server 2012 R2 Standard

Pada langkah nomor 9 paragraf " Menginstal SQL Server 2012" Saya mendapatkan error: .NET Framework 3.5 tidak diinstal.
Untuk mengatasi masalah ini, ikuti langkah-langkah berikut:

1. Anda perlu membuka konsol " manajer server".

2. Di menu sebelah kiri, pilih item "Dasbor".

3. Di tengah jendela, klik item "Tambahkan peran dan fitur".

4. Di wisaya yang terbuka, lewati langkah "Sebelum Anda Mulai".

5. Pada langkah "Installation Type", pilih " Instalasi berbasis peran atau berbasis fitur". Tekan tombol "Berikutnya".

6. Pada langkah selanjutnya, biarkan semuanya sebagai default dan klik tombol "Berikutnya".

7. Lewati langkah "Peran Server" dengan mengklik tombol "Berikutnya".

8. Pada langkah "Fitur", centang kotak "Fitur .NET Framework 3.5". Kami menekan tombol "Selanjutnya".

9. Setelah proses instalasi selesai, Anda bisa menutup Add Roles and Features Wizard.

10. Selesai!

Semua langit yang baik dan damai di atas kepala Anda!

P.S. Selamat Hari Kosmonautika!

Posting ini hanya akan fokus pada MS SQL Server. Jika Anda akan "mencoba keberuntungan Anda" dalam menggunakan 1C dengan Oracle, DB2, Postrgre, informasi ini tidak akan berguna bagi Anda. Tetapi Anda perlu memahami bahwa di 1C, pertama-tama, ada spesialis di MS SQL Server. Melalui upaya IBM, ada juga spesialis DB2. Anda dapat berbicara lama tentang DBMS baik atau buruk, satu hal yang penting, 1C paling "mulus" bekerja dengan server MS SQL. Dilihat dari pesan terbaru dari "depan", bekerja dengan DB2 menjadi kurang lebih layak. Meskipun saya pribadi memiliki pengalaman menyiapkan 1C untuk bekerja dengan DB2 di versi 8.1, semuanya entah bagaimana tidak terlalu baik di sana. Bagaimanapun, pilihan DBMS lain harus diperdebatkan dengan jelas - baik dengan kemungkinan yang tidak ada di MS SQL (cluster dengan load balancing, Grid, dll.), atau oleh keuangan (Oracle telah dibeli), atau oleh platform (semuanya ada di linux).

Jadi, secara berurutan, apa yang perlu dilakukan dengan MS SQL Server:

1) Tetapkan memori minimum dan maksimum. Minimal adalah setengah dari memori sistem. Maksimum - memori sistem tanpa 2GB. Ini dilakukan melalui Management Studio - di properti server:

2) Jika prioritas tidak diatur pada tab "Prosesor", Anda perlu mengaturnya

3) Tetapkan tingkat paralelisme maksimum ke 1.

4) Nyalakan Agen Server SQL, atur Database Mail - tidak ada yang sulit di sana, saya tidak akan menjelaskan secara detail.

5) Siapkan paket layanan:
Umum:
a) Pembaruan statistik - setiap 2 jam
b) DBCC FREEPROCCACHE - setiap 2 jam
Untuk setiap pangkalan:
a) Pencadangan penuh
b) Cadangan diferensial
c) Defragmentasi indeks - setiap hari
d) Pembangunan kembali indeks - malam akhir pekan
e) Memeriksa integritas database - sebulan sekali pada malam hari di akhir pekan

6) Saya merekomendasikan pengaturan model pemulihan sebagai Sederhana untuk setiap basis data (di properti). Jika Anda tidak memiliki sistem 24/7 dan kurang dari 1000 pengguna per basis data, tidak ada cluster failover dan Anda belum menandatangani SLA di mana Anda berjanji untuk memulihkan data ke detik terdekat jika terjadi kegagalan peralatan apa pun (dan bukan sejak pencadangan terakhir) rekomendasi ini masuk akal. Jika tidak, Anda akan segera berpikir panjang dan panik di mana harus meletakkan Log Tranzaction yang terlalu besar

7) Hapus database tempdb dari database biasa ke disk lain - bahkan jika ini berarti mengkonfigurasi ulang susunan RAID dan menurunkan kinerjanya. Jika tidak, 1 pengguna akan dapat melumpuhkan pekerjaan semua pengguna lainnya. Jika Anda memiliki Hardware Accelereator dan bukan hard drive, maka tentu saja Anda tidak dapat memisahkan dan meletakkan tempdb di atasnya, tetapi ini hanya jika ada

8) instal beberapa alat pemantauan - Saya suka sorotan http://www.quest.com/spotlight-on-sql-server-enterprise/ misalnya

9) Uji diri Anda dengan penganalisis praktik terbaik Microsoft - http://www.microsoft.com/download/en/details.aspx?id=15289 - alat hebat yang tidak hanya membantu pengaturan, tetapi juga memecahkan banyak masalah.

Singkatnya, untuk apa kami melakukan semua ini:

1) Memori. Nilai minimum hanya akan menyelamatkan Anda dari "gangguan" ketika server SQL, untuk beberapa alasan yang hanya diketahuinya, tidak menggunakan semua memori yang tersedia untuknya. Harus makan semuanya! Nilai maksimum akan menyelamatkan Anda dari pertukaran jika pengoptimal penggunaan memori server SQL yang sama memutuskan bahwa tidak ada salahnya ....

3) Poin yang sangat penting - IHMO harus disetel ke 1 di semua sistem transaksional. Pertama, ini mencegah beberapa kunci antara proses berbeda yang mencoba mengeksekusi 1 permintaan, dan karenanya menyelamatkan kita dari beberapa kesalahan "aneh". Kedua... 1 permintaan "membunuh" akan dapat mengambil alih semua sumber daya server, yang agak tidak adil dalam kaitannya dengan pengguna sistem lainnya. Parameter itu sendiri menentukan berapa banyak inti prosesor yang dapat memproses 1 permintaan.

5) Tentang statistik dan membersihkan cache prosedural - ini "dengan telinga" tetapi kita sering lupa tentang pengindeksan ulang. Padahal, prosedur ini cukup penting, apalagi dengan pertumbuhan volume database, kepentingannya semakin meningkat. Terkadang hingga 60% kinerja hilang pada fragmentasi indeks.

7) Jika Anda memiliki Akselerator Perangkat Keras atau hanya 2 disk dengan kecepatan akses yang berbeda, saya juga akan merekomendasikan untuk memikirkan tentang mengalokasikan grup file dalam database dan membagi tabel individual ke dalam susunan disk yang berbeda dengan waktu akses yang berbeda. Bagaimanapun, Anda akan setuju bahwa PH "barang di gudang" dan buku referensi "Penyimpanan informasi tambahan" adalah 2 objek yang persyaratan penyimpanannya berbeda secara fundamental. Tidak perlu menyimpan semua file dan gambar dalam database pada larik cepat - Anda dapat memisahkannya menjadi yang terpisah, tidak terlalu cepat, tetapi jika ada banyak ruang (dan jangan takut untuk mengunggah banyak file ke database nanti).