Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah Go SQLCMD lebih perlahan daripada versi asli Windows?

Adakah Go SQLCMD lebih perlahan daripada versi asli Windows?

PHPz
PHPzke hadapan
2024-02-08 23:57:09451semak imbas

Go SQLCMD 比 Windows 原生版本慢吗?

Editor PHP Xiaoxin, adakah anda sering menggunakan alatan SQLCMD untuk mengurus dan mengendalikan pangkalan data? Pernahkah anda membandingkan perbezaan prestasi antara versi asli Windows dan Go SQLCMD? Jika anda mempunyai soalan ini, mari kita bincangkan topik ini hari ini. Dalam artikel ini, kami akan membandingkan prestasi kedua-dua versi ini dan memberikan jawapan, sama ada Go SQLCMD lebih perlahan daripada versi Windows asli. Mari lihat!

Kandungan soalan

Saya telah menggunakan Windows local sqlcmd 在本地 SQL Server 数据库上运行脚本。我有一组脚本文件,用于创建数据库、添加表和索引、填充域数据、添加存储过程等。运行脚本是通过每个文件执行一个 sqlcmd -i <file>.sql untuk menyelesaikannya. Ini berfungsi dengan baik dan cukup pantas. Selepas bertukar kepada pelaksanaan Go baharu sqlcmd, masa binaan pangkalan data menjadi beberapa kali lebih perlahan.

Saya tidak dapat mencari sebarang cara untuk mendapatkan statistik jenis pemasaan daripada sqlcmd获取计时类型的统计信息来确定是否是连接问题、连接池或其他问题。如果我将多个文件作为附加的 -i <file.sql> untuk menentukan sama ada isu sambungan, pengumpulan sambungan atau perkara lain. Saya dapat melihat apa yang kelihatan sebagai penambahbaikan jika saya menghantar berbilang fail sebagai pilihan -i <file.sql> tambahan, yang menunjukkan kepada saya bahawa ini ialah permulaan arahan Go atau sambungan pangkalan data awal Penubuhan isu. p>

Saya melakukan ujian di mana saya mengambil sepuluh fail SQL dan menjalankannya sebagai sepuluh sqlcmd 执行来运行,也作为一个 sqlcmd 执行来运行,这十个文件作为单独的 -i pelaksanaan berasingan dan juga sebagai satu

pelaksanaan dan sepuluh fail sebagai fail input -i code> yang berasingan. Perintah individu mengambil masa 20 saat, arahan gabungan mengambil masa 4 saat. Jadi ini nampaknya menjadi isu dengan overhed permulaan atau overhed sambungan. <p> </p>Selaras dengan cadangan @siggemannen, saya menguji sambungan menggunakan kelayakan AD dan pengguna pangkalan data langsung. Kelayakan AD jauh lebih perlahan daripada sambungan pangkalan data langsung, yang bermaksud ini adalah sumber kelambatan yang saya lihat dalam senario saya. <p> </p>Saya sedang mencari sebarang cadangan atau idea untuk menyelesaikan isu atau menyelesaikan masalah dengan lebih lanjut. Adakah terdapat cara untuk mempercepatkan pengesahan AD? <h2 class="daan"></h2>Penyelesaian<p><code>sqlcmd 并不比原生版本慢。使用 Windows/AD 凭据建立连接会增加建立连接所需的启动时间,并且在用例中为每个 sqlcmdGo

tidak lebih perlahan daripada versi asli. Menggunakan bukti kelayakan Windows/AD untuk mewujudkan sambungan meningkatkan masa permulaan yang diperlukan untuk mewujudkan sambungan dan menambah overhed tambahan dengan menjalankan satu fail SQL untuk setiap

contoh dalam kes penggunaan. sqlcmd 运行许多 SQL 文件,这将恢复我们所需的性能。但是,我们无需任何返工即可使用的替代方案是使用 SQL Server 级别主体 sa 在创建数据库时创建。这恢复了与使用 AD 登录的本机 sqlcmd

Kami boleh menulis semula skrip binaan untuk menjalankan banyak fail SQL untuk setiap individu 🎜 yang akan memulihkan prestasi yang kami perlukan. Walau bagaimanapun, alternatif yang boleh kami gunakan tanpa sebarang kerja semula ialah menggunakan pengetua peringkat SQL Server sa dicipta apabila pangkalan data dicipta. Ini memulihkan prestasi yang setanding dengan asli 🎜 menggunakan log masuk AD. 🎜

Atas ialah kandungan terperinci Adakah Go SQLCMD lebih perlahan daripada versi asli Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam