Maison > développement back-end > Golang > le corps du texte

Go SQLCMD est-il plus lent que la version native de Windows ?

PHPz
Libérer: 2024-02-08 23:57:09
avant
457 Les gens l'ont consulté

Go SQLCMD 比 Windows 原生版本慢吗?

Éditeur PHP Xiaoxin, utilisez-vous souvent les outils SQLCMD pour gérer et exploiter des bases de données ? Avez-vous déjà comparé la différence de performances entre la version native de Windows et Go SQLCMD ? Si vous avez ces questions, discutons de ce sujet aujourd’hui. Dans cet article, nous comparerons les performances de ces deux versions et donnerons la réponse si Go SQLCMD est plus lent que la version native de Windows. Nous allons jeter un coup d'oeil!

Contenu de la question

J'utilise Windows local sqlcmd 在本地 SQL Server 数据库上运行脚本。我有一组脚本文件,用于创建数据库、添加表和索引、填充域数据、添加存储过程等。运行脚本是通过每个文件执行一个 sqlcmd -i <file>.sql pour la compléter. Cela fonctionne bien et est assez rapide. Après le passage à la nouvelle implémentation Go de sqlcmd, les temps de construction de la base de données sont plusieurs fois plus lents.

Je n'ai trouvé aucun moyen d'obtenir des statistiques de type de synchronisation de sqlcmd获取计时类型的统计信息来确定是否是连接问题、连接池或其他问题。如果我将多个文件作为附加的 -i <file.sql> pour déterminer s'il s'agit d'un problème de connexion, d'un regroupement de connexions ou de quelque chose d'autre. Je peux voir ce qui semble être une amélioration si je transmets plusieurs fichiers en tant qu'options -i <file.sql> supplémentaires, ce qui m'indique qu'il s'agit du démarrage de la commande Go ou de l'établissement initial de la connexion à la base de données. problèmes. p>

J'ai fait un test où j'ai pris dix fichiers SQL et les ai exécutés en dix sqlcmd 执行来运行,也作为一个 sqlcmd 执行来运行,这十个文件作为单独的 -i exécutions distinctes et également en une seule

exécution et les dix fichiers en tant que fichier d'entrée -i code> séparé. Les commandes individuelles prennent 20 secondes, les commandes combinées prennent 4 secondes. Cela semble donc être un problème de surcharge de démarrage ou de connexion. <p> </p>Selon la suggestion de @siggemannen, j'ai testé la connexion en utilisant les informations d'identification AD et un utilisateur direct de la base de données. Les informations d'identification AD sont beaucoup plus lentes que les connexions directes à la base de données, ce qui signifie que c'est la source de la lenteur que je constate dans mon scénario. <p> </p>Je recherche des suggestions ou des idées pour résoudre le problème ou dépanner davantage. Existe-t-il un moyen d’accélérer l’authentification AD ? <h2 class="daan"></h2>Solution<p><code>sqlcmd 并不比原生版本慢。使用 Windows/AD 凭据建立连接会增加建立连接所需的启动时间,并且在用例中为每个 sqlcmdGo

n'est pas plus lent que la version native. L'utilisation des informations d'identification Windows/AD pour établir une connexion augmente le temps de démarrage requis pour établir la connexion et ajoute une surcharge supplémentaire en exécutant un fichier SQL pour chaque

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

Nous pouvons réécrire le script de construction pour exécuter de nombreux fichiers SQL pour chaque individu 🎜, ce qui restaurera les performances dont nous avons besoin. Cependant, une alternative que nous pouvons utiliser sans aucune retouche consiste à utiliser le Principal au niveau SQL Server sa est créé lors de la création de la base de données. Cela restaure des performances comparables à celles natives 🎜 en utilisant la connexion AD. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal