SQL Server Management Studio (SSMS) での Copilot の主な目標は、Transact-SQL (T-SQL) の作成と編集など、SSMS のワークフロー内の生産性を向上することです。 SSMS で Copilot を最大限に活用するには、有効にするだけではなく、効果的に共同作業を行う方法を学ぶことです。 SSMS の Copilot は、他のパートナーと同様に、明確な方向と適切なコンテキストが与えられた場合に最適なパフォーマンスを発揮します。 チャット ウィンドウを最適に使用すると、SSMS での Copilot でのエクスペリエンスの品質も向上します。
チャット ウィンドウ
チャット ウィンドウのアイコンと機能については、「 SQL Server Management Studio で Copilot のチャット ウィンドウを使用する」に記載されていますが、プロンプトに固有のその他の考慮事項があります。
主に、チャット ウィンドウを結果ウィンドウとして扱わないようにします。 スキーマまたはデータについて Copilot に質問すると、クエリが直接実行され、チャット ウィンドウに情報が返されることがあります。 SSMS の Copilot は、実行前にクエリによって返される行数を決定せず、クエリが 1,000 行を返した場合、その情報をチャットに表示しようとします。 大規模な結果セットは、チャット ウィンドウ内では読み取りが容易ではなく、操作することもできません。
多くの場合、SSMS で Copilot に情報を返すクエリを記述するよう依頼することが推奨され、SSMS での Copilot との対話とエクスペリエンスが向上します。
一貫性
コパイロットユーザーの間でよくある不満は、応答に一貫性がないことです。 AI の応答は、決定論的ではなく確率的に生成されるため、矛盾する可能性があります。 つまり、同じ質問をした場合でも、モデルはコンテキスト、構成、または内部ランダム性の微妙なバリエーションに基づいて、別の単語または文構造のセットを選択する可能性がありますが、それでももっともらしいものです。 さらに、AI モデルはプロンプトの潜在的な解釈の多くを考慮に入れるので、フレージングやタイミングを小さく変更すると、結果が異なる可能性があります。 この変動性は、AI の柔軟性と強力さの一部ですが、プロンプトが最適に構築されていない場合は、予測できない結果につながる可能性もあります。
プロンプトの書き込み
AI の使用に固有の機能は、送信するプロンプトを記述することです。パフォーマンス チューニングと同様に、それは芸術と科学です。 適切なプロンプトを記述するためにプロンプト エンジニアである必要はありません。 ただし、AI を使用する場合は、一般的なガイドラインに注意する必要があります。
たとえば、 Find the hottest tables in the database尋ねると、SSMS の Copilot は、このプロンプトのコンテキストでは、最もホットなテーブルが最も混雑しているテーブル、または最もアクティブなテーブルであることを理解していない可能性があります。 代わりに、 List the top 10 tables in the database that have the most readsしてみてください。
プロンプトの書き込みに関する一般的な推奨事項は次のとおりです。
| 勧告 | 詳細 |
|---|---|
| 自然言語を使用する | 特殊なボキャブラリを使用する必要はありませんが、非公式のフレーズ、スラング、専門用語を避けるようにしてください。 |
| 明確で具体的にする | Copilot が何を求めているかを明確にするため、十分な詳細を指定します。 |
| コンテキストを指定する | SSMS の Copilot にはクエリ エディター接続に基づくデータベース コンテキストがありますが、期間や特定のデータベース オブジェクトなどの追加のコンテキストを提供できます。 |
| 例を使用する |
Modify the last query to order the results by CustomerIDなどの以前の応答に基づいて構築します。 |
| 出力形式を定義する | Copilot は、テキスト、テーブル、またはリスト形式で情報を提供できます。 これはユーザーに代わりに選択されますが、必要な形式で情報を返すように特に要求できます。 |
プロンプトの例:
| 勧告 | 避ける | 試す |
|---|---|---|
| 自然言語を使用する | Yo cook me up something cool for grabbing sales data |
Write a SQL query that selects the top 10 most recent orders from the Sales.Orders table |
| 明確で具体的にする | Okay, so I've got this thing where I need to maybe get some kind of report or output or whatever for yesterday's stuff but like only for users that are new but not too new, if that makes sense |
Write a query to return users who registered yesterday and have not yet made a purchase |
| コンテキストを指定する | List western schools with no language reqs |
List schools in the US-West geo that have a lang_req value of 0 |
| 例を使用する | Write a query to get recent customer info |
Write a query to get customer ID, name, and total number of orders for the last 10 business days ordered by total desc |
| 出力形式を定義する | Give me hospital locations and size with the busiest emergency rooms |
List the hospitals with the busiest emergency rooms in table format and include city state and size |