Saya mendapatkan keterlambatan yang sangat lama (10 ~ 30 detik) di SQL Server Management Studio 2014 ketika mencoba untuk terhubung ke contoh SQL Server 2012 melalui TCP menggunakan Windows Authentication . Ini terjadi ketika menghubungkan Object Explorer atau jendela permintaan kosong baru. Setelah tersambung, menjalankan kueri dengan cepat. Masalahnya tidak terjadi ketika saya terhubung menggunakan otentikasi SQL Server.
Lingkungan Hidup:
- Windows 7, masuk sebagai pengguna domain
- Koneksi TCP melalui alamat IP (bukan nama host)
- Server berada di lokasi terpencil yang terhubung melalui VPN
- Tanpa enkripsi
Ketika saya masuk ke komputer Windows 7 rekan kerja dengan akun domain saya, dan terhubung ke SQL Server yang sama melalui VPN yang sama, tidak ada penundaan. Ketika rekan kerja yang sama masuk ke PC saya dengan akun domain sendiri, ia mengalami keterlambatan. Tes ini menunjukkan bahwa masalahnya unik untuk PC saya. Juga, masalah hanya muncul ketika menghubungkan ke SQL Server dan VPN khusus ini; Saya dapat terhubung ke SQL Server lain di jaringan lokal melalui Windows Authentication tanpa penundaan.
Hal-hal yang saya coba tanpa hasil:
- Anti-virus dan firewall dinonaktifkan
- Mengganti nama folder "12.0" di bawah "% userprofile% \ AppData \ Roaming \ Microsoft \ SQL Server Management Studio" menjadi "_12.0" untuk memaksa SSMS menciptakan kembali pengaturan pengguna saya.
- Paksa protokol Jaringan ke TCP daripada
<default>
. Saya juga mencoba Pipa Bernama tetapi server saya tidak siap untuk itu. - Menginstal SSMS 2012 dan mencobanya bukan 2014.
- IPv6 dinonaktifkan
- Blackholed crl.microsoft.com ke 127.0.0.1 di file etc \ hosts saya.
- Menonaktifkan Program Peningkatan Pengalaman Pelanggan di SSMS, Visual Studio, dan Windows.
- Copot semua aplikasi terkait SQL Server dari PC saya dan instal ulang hanya tahun 2012.
Petunjuk TCPView:
- Menggunakan TCPView, saya perhatikan bahwa ketika saya membuat koneksi baru, kondisinya menjadi ESTABLISHED segera, tetapi kemudian satu atau dua koneksi dengan SQL Server terus dicoba dan ditutup dengan TIME_WAIT . Di komputer rekan kerja saya, koneksi ini ESTABLISHED dan solid. Jadi saya cukup yakin ini adalah sumber dari timeout, tetapi untuk apa koneksi, dan mengapa mereka gagal? (Saya tidak memiliki addons di SSMS saya.)
Ada ide?
Pembaruan: Petunjuk Intellisense / Autocomplete (?):
Saya perhatikan bahwa begitu saya akhirnya terhubung, Intellisense / Autocomplete tidak berfungsi. Apakah itu memerlukan koneksi terpisah dari SSMS? Saya mencoba menonaktifkannya, dan sepertinya tidak menyelesaikan penundaan koneksi yang lama.
sumber
Jawaban:
Coba jalankan jejak dengan SQL Profiler saat Anda, dan kemudian rekan kerja Anda, terhubung ke server.
Pilih RPC, Pernyataan SQL & PreConnect - Mulai / Selesai.
Pilih opsi Simpan Hasil Ke Tabel, lalu bandingkan 2 tabel untuk menemukan bottleneck.
Atau, karena Anda terhubung dengan IP, itu bisa melakukan pencarian Reverse DNS. Jika demikian, tambahkan entri di file host Anda.
sumber
Yang harus Anda periksa pertama adalah pengaturan DNS server atau klien Anda
Bukan jarang SQL Server Anda mengalami masalah saat menyambung ke Active Directory. Jika Anda mencoba dengan akun Windows lokal saya yakin Anda tidak akan memiliki masalah. Bukan hal aneh bahwa server dikonfigurasikan dengan DNS internet publik dan ketika SQL Server terhubung ke DC untuk memeriksa kredensial dan memverifikasinya, ia akan mencoba menghubungi DNS publik sebagai ganti DNS server AD. Karena informasi ini tidak disimpan pada DNS publik, maka akan gagal untuk memverifikasi dan ini akan menyebabkan penundaan sampai ia berhasil menghubungi server DNS atau DC yang tepat melalui NTLM
Karena Anda tidak mengalami masalah dengan SQL Server lain, maka hampir pasti masalahnya tidak terkait dengan konfigurasi AD atau DC
Jalankan perintah IPConfig.exe / all dari cmd untuk memeriksa server DNS yang dikonfigurasi. Anda seharusnya hanya mengonfigurasi server DNS AD. Hapus semua server DNS publik, dan tinggalkan hanya server DNS AD.
sumber
Saya memperpanjang
C:\Windows\System32\drivers\etc\hosts
file dengan menambahkan baris seperti ini:201.202.203.204
adalah alamat IP dari SQL Server Anda.mysqlserver
- nama apa pun yang Anda suka (Anda tidak harus menggunakannya di mana saja).Ini membuat server saya lebih cepat.
Terima kasih kepada: d -_- b, Jordan, Rieger, felickz, RobbZ
sumber
Matikan Windows Firewall di server SQL Anda untuk profil jaringan Domain.
Get-NetFirewallProfile -Profile Domain
untuk memeriksa kondisi saat iniSet-NetFirewallProfile -Profile Domain -Enabled False
untuk mematikannya.Jika ini masalahnya, Anda dapat mengaktifkannya kembali nanti dan menyesuaikan pengaturan Anda. Atau, jika Anda berada di lingkungan yang aman, Anda dapat mengabaikannya.
Yang aneh adalah bahwa bahkan jika Windows Firewall memblokir komunikasi, Anda masih akan dapat terhubung tetapi baik jabat tangan awal dan permintaan berikutnya akan sangat lambat. Teori saya (berdasarkan tidak ada bukti nyata) adalah bahwa dalam kasus ini komunikasi jatuh kembali di Named Pipes yang jauh lebih lambat antara PC jarak jauh.
sumber