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 サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

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

ホットトピック









