タグ付けされた質問 「sql-server-2008」

SQL Server 2008(メジャービルドバージョン10.00.xxxx)。また、sql-serverでタグ付けしてください。

2
Windows認証を使用してリンクサーバーを機能させるにはどうすればよいですか?
ドメイン環境で「ログインの現在のセキュリティコンテキストを使用して作成する」を使用して、別のサーバーServerBで作成されたServerAにリンクサーバーを取得しようとしています。Kerberosを有効にするには、各サーバーでSQL Serverを実行するサービスアカウント用にSPNを作成する必要があることを読みました。私はそれを行っており、認証スキームがKerberosであることを両方とも示していますが、まだエラーに直面しています: "Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'". Active Directoryでは、ServerBのサービスアカウントがMSSQLSvcへの委任に対して信頼されていることがわかりますが、ServerAのサービスアカウントでは「このユーザーを委任に対して信頼」が有効になっていないことに気付きました。ターゲットサーバーでもそのオプションを有効にする必要がありますか?現在のWindowsログインを使用してリンクサーバーを使用できるようにするために、他に必要なものはありますか?

4
SQL Serverから取得したデータは送信用に圧縮されていますか?
Microsoft SQL Serverから取得したデータは圧縮されていますか?これが接続文字列によって制御されている場合、特定のアプリが接続文字列を使用しているかどうかを確認する簡単な方法はありますか? 私は分析ツールを検討していますが、データ量がネットワークを介して送信されるのに数分かかる場合があります。同じリモートサーバー上の圧縮データストアからデータを取得する場合、パフォーマンスの向上を期待する必要があるかどうか疑問に思っています。 私たちがこのトピックについて話している限り、興味があります。データはバイナリで送信されますか、それともASCIIで送信されますか?たとえば、値12345がINT列からクエリされる場合、5バイト0x31、0x32、0x33、0x34、0x35として送信されます。値に必要な2バイト。または列に必要な4バイト? 明確にするために、データを圧縮して保存し、バックアップすることに関するオプションがあることを理解しています。データの送信方法について質問しています。

1
SQL Profiler / perfmonの代わりにいつ拡張イベントを使用する必要がありますか?
拡張イベントは、より優れたテクノロジーであり、サーバーへの負荷が少ないように見えますが、SQL Profiler / perfmonには優れたツールがあります。また、拡張イベントには学習曲線が急勾配になっているようです。それぞれどのコンテキストで使用する必要がありますか?拡張されたイベントを利用するために、急な学習曲線を通過する価値はありますか?

5
空の列はテーブル内のスペースを占有しますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 非常に基本的な情報を保持するテーブルがあります。タイトルといくつかの日付フィールドのみ。コメントと呼ばれるvarchar(4000)というフィールドが1つあります。ほとんどの場合、空白のままにしますが、ここに大量のデータを入力することもあります。これは本当に悪いデザインですか?または、これはわずかに非効率ですか? この列に別のテーブルを作成する方が良いと思います。 注:これはSQL Server 2008です

1
SQL Server DDLでトランザクションを使用するには?
すべての挿入が単一のストアドプロシージャによって行われるログインテーブルがあります。 CREATE TABLE dbo.LogTable( LogRefnr int IDENTITY(1, 1) NOT NULL, LogQuery varchar(255) NOT NULL, LogTime datetime NOT NULL, logQueryDuration int NULL, LogSessionID int NULL, CONSTRAINT PK_Log PRIMARY KEY CLUSTERED (LogRefnr) ) go Create procedure DBO.LogInsert ( @Query varchar(255), @time datetime, @duration int, @SessinID int) as begin Insert into LogTable ( …

5
SQL Serverデータベースの状態を監視するために使用する最適なクエリは何ですか?
クエリを実行して、データベースのステータスに関する重要な情報を取得できるようにしたいと思います。つまり、データベースが良好な状態にあるかどうかをクエリで確認できるようにする必要があります。 これは、このチェックのために継承したクエリです。 SELECT name AS [SuspectDB], DATABASEPROPERTY(name, N'IsSuspect') AS [Suspect], DATABASEPROPERTY(name, N'IsOffline') AS [Offline], DATABASEPROPERTY(name, N'IsEmergencyMode') AS [Emergency], has_dbaccess(name) AS [HasDBAccess] FROM sysdatabases WHERE (DATABASEPROPERTY(name, N'IsSuspect') = 1) OR (DATABASEPROPERTY(name, N'IsOffline') = 1) OR (DATABASEPROPERTY(name, N'IsEmergencyMode') = 1) OR (has_dbaccess(name) = 0) そのクエリが結果を返す場合、データベースが疑わしい状態または潜在的に悪い状態にあるという仮定が行われます。 これを行うためのより良い方法はありますか?

5
T-SQLでIFを使用すると、実行計画のキャッシングが弱くなるか壊れますか?
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 t-SQLバッチでIFステートメントを使用すると、パフォーマンスが低下することが示唆されています。このアサーションを確認または検証しようとしています。SQL Server 2005および2008を使用しています。 アサーションは、次のバッチでのことです:- IF @parameter = 0 BEGIN SELECT ... something END ELSE BEGIN SELECT ... something else END 次の実行には別のブランチが必要な場合があるため、SQL Serverは生成された実行プランを再利用できません。これは、現在の実行で必要なブランチを既に決定できることに基づいて、SQL Serverが実行プランから1つのブランチを完全に削除することを意味します。これは本当ですか? さらに、この場合に何が起こるか:- IF EXISTS (SELECT ....) BEGIN SELECT ... something END ELSE BEGIN SELECT ... something else END どのブランチを実行するかを事前に決定できない場合


1
「NOT FOR REPLICATION」オプションを持つ主キー
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 6年前に移行され ました。 私は最近プロジェクトを引き継ぎましたが、ほとんどのテーブルで主キーにプロパティ " NOT FOR REPLICATION" があることを発見しました。 私はDBAではありませんが、ほとんどのデータベースでは、主キーのないレコードは破損していると考えられます。ほとんどの場合、これらのレコードの主キーはどこかで外部キーとして使用されます。 これは以前の開発者(会社で働いていなかった)側のエラーですか、それとも他のロジックが関係していますか?実稼働環境ではレプリケーションさえ使用しないため、これは実際には深刻な問題には影響しませんが、気付いていないこれらのディレクティブをすべて削除する他の副作用があるかどうか疑問に思っていました。 私はこのトピックに関連する多くの検索用語で多くの有用なヒットを見つけていないので、これは私が逆にする必要がある単なる愚かなエラーであることをかなり確信しているので、この質問は本当に私の妄想を和らげることです。


8
特定のログインに対してマップされたすべてのユーザーをリストするクエリ
特定のログインのプロパティを見ると、そのログインにマップされているユーザーのリストを見ることができます: SQL Server Management Studio(SSMS)のプロファイルを作成しましたが、SSMSはすべてのデータベースに一度に1つずつ接続し、sys.database_permissionsから情報を取得することがわかりました 上記のユーザーマッピング情報を取得する単一のクエリを作成することは可能ですか、それともカーソルやsp_MSforeachdbなどを使用する必要がありますか?

5
データベースのmdfファイルの場所
この質問は、データベース管理者のStack Exchangeで回答できるため、Stack Overflowから移行されました。 6年前に移行され ました。 データベースがありますProject。私は見つけることができます私の問題はある.mdfと_log.ldf私のデータベースの私は別のユーザーに自分のデータベースを転送できるようにします。Microsoft SQL Server 2008 Management Studioを使用しています 私Ssms.exeはこのパスに保存されています C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe

5
リンクサーバーでCASE式に10ブランチという制限があるのはなぜですか?
なぜこのCASE式は: SELECT CASE column WHEN 'a' THEN '1' WHEN 'b' THEN '2' ... c -> i WHEN 'j' THEN '10' WHEN 'k' THEN '11' END [col] FROM LinkedServer.database.dbo.table この結果を生成しますか? エラーメッセージ:メッセージ8180、レベル16、状態1、行1 ステートメントを準備できませんでした。メッセージ125、レベル15、状態4、行1のケース式はレベル10にのみネストできます。 CASE10個以上の「ブランチ」がありますが、ここには明らかにネストされた式はありません。 もう一つの奇妙な。このインラインテーブル値関数は、同じエラーを生成します。 ALTER FUNCTION [dbo].[fn_MyFunction] ( @var varchar(20) ) RETURNS TABLE AS RETURN ( SELECT CASE column WHEN 'a' …


5
SSMSでサーバーエージェントが見つかりませんでした
私はガイドに従っています-http: //www.sqlchicken.com/2009/07/how-to-create-a-server-side-trace-with-sql-profiler/ステップ8に到達するまで動作しています 次に、新しく作成したスクリプトをスケジュールします。SSMSで、トレースするサーバーに接続します。SQL Serverエージェントに移動して展開し、ジョブフォルダーを表示できるようにします。[ジョブ]フォルダを右クリックして、[新しいジョブ]を選択します。 見つけられませんSQL Server Agent。これをどこでSQL Server Agent表示できますか?現在のユーザーにすべてのアクセス許可を与えました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.