検索
ホームページバックエンド開発GolangGo SQLCMD は Windows ネイティブ バージョンよりも遅いですか?

Go SQLCMD 比 Windows 原生版本慢吗?

php エディタ Xiaoxin さんは、データベースの管理と操作に SQLCMD ツールをよく使用しますか? Windows ネイティブ バージョンと Go SQLCMD のパフォーマンスの違いを比較したことがありますか?このような質問がある場合は、今日はこのトピックについて話し合いましょう。この記事では、これら 2 つのバージョンのパフォーマンスを比較し、Go SQLCMD がネイティブ Windows バージョンよりも遅いかどうかについて答えを示します。見てみましょう!

質問の内容

Windows ローカルの sqlcmd を使用して、ローカル SQL Server データベースでスクリプトを実行しています。データベースの作成、テーブルとインデックスの追加、ドメイン データの入力、ストアド プロシージャの追加などを行う一連のスクリプト ファイルがあります。スクリプトの実行は、ファイルごとに 1 つの sqlcmd -i <file>.sql</file> を実行することによって行われます。これはうまく機能し、十分に高速です。 sqlcmd の新しい Go 実装に切り替えた後、データベースの構築時間は数倍遅くなります。

sqlcmd からタイミング タイプの統計を取得して、それが接続の問題なのか、接続プーリングなのか、それとも他のものなのかを判断する方法が見つかりませんでした。追加の -i <file.sql></file.sql> オプションとして複数のファイルを渡すと、改善されたように見えることがわかります。これは、これが Go コマンドの起動または最初のデータベース接続の確立のいずれかであることを示しています。問題。 p>

私は、10 個の SQL ファイルを取得し、それらを 10 回の個別の sqlcmd 実行として実行し、また 1 つの sqlcmd 実行としても実行するテストを行いました。これらの 10 個のファイルは、個別の - として機能します。 i 入力ファイル。個々のコマンドには 20 秒かかり、コマンドを組み合わせると 4 秒かかります。したがって、これは起動オーバーヘッドまたは接続オーバーヘッドに問題があるようです。

@siggemannen の提案に従って、AD 資格情報と直接データベース ユーザーを使用して接続をテストしました。 AD 資格情報はデータベースへの直接接続よりもはるかに遅いため、これが私のシナリオで発生している遅さの原因であることを意味します。

問題を解決したり、さらにトラブルシューティングを行ったりするための提案やアイデアを探しています。 AD 認証を高速化する方法はありますか?

解決策

Go sqlcmd はネイティブ バージョンよりも遅くありません。 Windows/AD 資格情報を使用して接続を確立すると、接続の確立に必要な起動時間が長くなり、ユースケースの sqlcmd インスタンスごとに 1 つの SQL ファイルを実行するため、オーバーヘッドが追加されます。

ビルド スクリプトを書き換えて、個々の sqlcmd ごとに多数の SQL ファイルを実行することで、必要なパフォーマンスを回復できます。ただし、何も手を加えずに使用できる代替方法は、データベースの作成時に作成された SQL Server レベルのプリンシパル sa を使用することです。これにより、AD ログインを使用したネイティブ sqlcmd と同等のパフォーマンスが復元されます。

以上がGo SQLCMD は Windows ネイティブ バージョンよりも遅いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はstackoverflowで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
GOの地図をどのように反復しますか?GOの地図をどのように反復しますか?Apr 28, 2025 pm 05:15 PM

記事では、GOのマップを介して反復し、安全なプラクティスに焦点を当て、エントリを変更し、大規模なマップのパフォーマンスに関する考慮事項に焦点を当てています。

GOでどのようにマップを作成しますか?GOでどのようにマップを作成しますか?Apr 28, 2025 pm 05:14 PM

この記事では、初期化方法や要素の追加/更新など、GOのマップの作成と操作について説明します。

ArrayとGoのスライスの違いは何ですか?ArrayとGoのスライスの違いは何ですか?Apr 28, 2025 pm 05:13 PM

この記事では、GOの配列とスライスの違いについて説明し、サイズ、メモリの割り当て、機能の合格、および使用シナリオに焦点を当てています。アレイは固定サイズで、スタックに挿入されていますが、スライスは動的で、しばしばヒープアロークされ、より柔軟です。

GOでどのようにスライスを作成しますか?GOでどのようにスライスを作成しますか?Apr 28, 2025 pm 05:12 PM

この記事では、リテラル、メイク機能、既存のアレイまたはスライスのスライスなど、GOのスライスの作成と初期化について説明します。また、スライスの構文とスライスの長さと容量の決定もカバーします。

Goでどのように配列を作成しますか?Goでどのように配列を作成しますか?Apr 28, 2025 pm 05:11 PM

この記事では、GOの配列を作成および初期化する方法について説明し、配列とスライスの違いについて説明し、配列の最大サイズの制限に対処します。配列対スライス:固定対動的、値と参照タイプ。

GOで構造体を作成するための構文は何ですか?GOで構造体を作成するための構文は何ですか?Apr 28, 2025 pm 05:10 PM

記事では、フィールドの命名ルールや構造体の埋め込みなど、GOの構造体の構文と初期化について説明します。主な問題:GOプログラミングで構造体を効果的に使用する方法(文字:159)

GOでどのようにポインターを作成しますか?GOでどのようにポインターを作成しますか?Apr 28, 2025 pm 05:09 PM

この記事では、GOのポインターの作成と使用を説明し、効率的なメモリ使用や安全な管理慣行などの利点について議論しています。主な問題:安全なポインターの使用。

Goを使用することの利点は何ですか?Goを使用することの利点は何ですか?Apr 28, 2025 pm 05:08 PM

この記事では、Software開発にGo(Golang)を使用することの利点について説明し、その並行性サポート、高速編集、シンプルさ、およびスケーラビリティの利点に焦点を当てています。恩恵を受ける主要な業界には、テクノロジー、金融、ゲームが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。