Maison > Article > développement back-end > Go SQLCMD est-il plus lent que la version native de 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!
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
-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 凭据建立连接会增加建立连接所需的启动时间,并且在用例中为每个 sqlcmd
Go 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
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!