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

Microsoft SQL Serverのすべてのバージョン(MySQL以外)。sql-server-2016のようなバージョン固有のタグも追加してください。これは、質問に関連することが多いためです。

2
ビット列にインデックスを追加すると、挿入が大幅に遅くなりますか?
約100万から500万レコードのテーブルがあります。そのレコードのごく一部では、ビット列の1つが「TRUE」に設定されています。そのレコードをすばやく見つける必要があります。インデックスはこの列の検索を高速化できると思いますが、INSERTを恐れています。したがって、私の質問です。 データベースは一種のデータウェアハウスのように機能するため、多くのSELECTがあり、小さい(1日あたり最大10〜20)が、非常に大きいINSERT(一度に最大20万レコード)があります。データベースへのインポートの時間が長くなるのではないかと心配です。

3
SQL Serverデータベースからすべてのセキュリティ関連情報をエクスポートする方法
おそらくご存じのとおり、SQL Serverには、データベースの各要素(データベースレベルとオブジェクトレベルの両方)に対して宣言されているすべてのセキュリティ関連ステートメントをエクスポートするための、すぐに使えるソリューションはありません。 この情報を思い付く能力について話している すべてのユーザー すべてのユーザー定義の役割 データベースレベルのすべての権限(例:GRANT CREATE FUNCTION) オブジェクトレベルのすべての権限(例:GRANT SELECT ON OBJECT :: xxx) SQL Serverにはこのようなものがあるはずだと思うかもしれませんが、SQL Serverエクスポートウィザードも、オブジェクトを右クリックした結果として生成されるさまざまなスクリプトも、この情報をキャプチャしません。 私は、人々が丁寧に投稿したキュレートされていないスクリプトを使用してさまざまな「可能な解決策」をオンラインで見てきましたが、すべてのセキュリティ情報がキャプチャされることを100%確認する必要があるため、これらのスクリプトに完全に依存することはできません。 私はそれらを開始点として使用して自分で何かを書くこともできますが、多くの人が持っていると思われる要件のためにホイールを再発明する必要はありません。 この情報を確実に提供できるツールが(SQL Server製品またはサードパーティツールの一部として)提供されていませんか? または、少なくとも、ほとんどの人々が「仕事をする」ことに同意する、コミュニティがサポートするスクリプトはありますか? ありがとう!

3
db_ownerがデータベースを削除できません-エラー615、SQL Server
Amazon EC2でSQL Server 2012データベースを実行しています。データベースを作成、編集、削除できるユーザーを作成しました。新しいユーザーにdbcreatorサーバーの役割を与えました。 ユーザーはリモートで接続してcreate database foo;コマンドを正常に実行できます。しかし、ユーザーdrop database foo;がコマンドを使用してデータベースを再度削除しようとすると、次のエラーで失敗します。 Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM. Note the error and time, and contact your system administrator. ErrorCode: 21 選択されたデータベースは使用中ですmaster(そのため、使用中だからとは思いません)。また、管理ユーザーとしてログインして再度実行すると、コマンドは成功します。 新しく作成したデータベースを確認しましたが、ユーザーdb_ownerにはデータベース内のロールが期待どおりに割り当てられているので、作成したデータベースを削除するには、これで十分です。 http://technet.microsoft.com/en-us/library/ms178613.aspxによると、db_ownerロールは十分な権限である必要があります。「データベースのCONTROL権限、ALTER ANY DATABASE権限、またはdb_owner固定データベースロールのメンバーシップが必要です。」 エラー615を検索し、「データベーステーブルID%d、名前 '%。* ls'が見つかりませんでした。」を見つけました。私には意味がありません。http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx SQLサーバーのバージョン情報:Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) /n May 22 …

1
複数のサーバーログインの1人のデータベースユーザーへのマッピング
これは馬鹿げた質問のようですが、いくつかの調査にもかかわらず、(おそらく間違った用語を使用したために)これに関する情報を見つけることができませんでした。 複数のサーバーログイン(SQLサーバー認証)を単一のデータベースユーザー(データベースロールのメンバーとして割り当てられたアクセス許可を持つ)に記録することはできますか? 中央データベースから1つの設定を読み取る必要がある数十のSQLログイン(SQLサーバー認証)があり、ログインごとに独自のDBユーザーを作成するのではなく、これらのすべてのログインをターゲットデータベースの単一のDBユーザーにマッピングしたいと思います。 はいの場合、正しいT-SQL構文は何ですか?

1
プロシージャキャッシュヒット率を向上させる方法は?
プロシージャキャッシュヒット率が95%未満であると私が知ることができることは問題です。私のボックスでは、値は85から95%に移動します。 この問題を解決するにはどうすればよいですか?サーバーには十分なRAMがあるようですので、問題にはなりません。他に何ができますか?

1
1つのトランザクションで同じレコードが複数回更新された場合、いくつのバージョンが保存されますか?
Kimberly L. TrippによるMSDNの記事によると、Neal Gravesの「SQL Server 2005行バージョン管理ベースのトランザクション分離」 "... 特定のレコードの以前のバージョンはすべて、リンクリストにチェーンされています。また、長時間実行される行のバージョン管理ベースのトランザクションの場合、トランザクション的に一貫したバージョンにアクセスするには、アクセスごとにリンクをたどる必要があります。行」 これは、「行バージョニングを使用してコミットされた読み取りでの行バージョニング」と「スナップショット分離での行バージョニング」の両方のセクションに共通する「行バージョニングについて」セクションにあります。 さらに、変更による行のバージョン管理の例では、SNAPSHOTのみの複数のトランザクション(T1、T2、T3)による同じレコードの複数の更新のコンテキストで説明されています。 1つのトランザクションのみがレコードを複数回(複数のステートメントによって)更新する場合、複数のバージョンストアが保存(リンク)されますか、それともスナップショット「イメージ」の時点で取得されたもののみが取得されますか? まあ、この質問への答えはすぐに私のその他の保留中の関連する質問に答えるはずです: 行バージョン管理分離では、レコードのバージョンのリンクリストを使用するのはなぜですか? RCSIはSNAPSHOTより少ないか同じスペースを使用しますか?どうして?

3
1つまたは2つのインデックス?
データベースのテーブルに次のインデックスを作成しました。 CREATE INDEX [idx_index1] on [table1] (col1, col2, col3) サーバーは次の「不足している」インデックスを提案しています: CREATE INDEX [idx_index2] on [table1] (col1, col2) INCLUDE (col3, col4, col5, col6....) 維持する必要のある新しいインデックスを作成するのではなく、提案された列を含めるように既存のインデックス定義を修正するのは私には理にかなっています。col1とcol2を選択するクエリは、index1をindex2と同じくらい効果的に使用できます。私は正しいのですか、それとも何か不足しているのでしょうか?

3
STIntersectsのパフォーマンスの向上
テーブルにT_PINは300,000のピンとT_POLYGON36,000のポリゴンがあります。T_PINこのインデックスがあります: CREATE SPATIAL INDEX [T_PIN_COORD] ON [dbo].[T_PIN] ( [Coord] )USING GEOGRAPHY_GRID WITH (GRIDS =(LEVEL_1 = HIGH,LEVEL_2 = HIGH,LEVEL_3 = HIGH,LEVEL_4 = HIGH), CELLS_PER_OBJECT = 128, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; T_POLYGON 持っています: …

5
未使用領域のSQL Serverテーブルの解放
SQL Server 2012 Expressに未使用のスペースが多いテーブルがあります。 データベースのスペースを解放する必要があります。 | NAME | ROWS | 予約済み| データ| INDEX_SIZE | 未使用| | ------------- | -------- | -------------- | ----------- --- | ------------ | -------------- | | MyTableName | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB | SQLで3165104KBをリリースするにはどうすればよいですか? 私はすでに試しました: Alter table …

3
エラー:「SQL Serverデータツールの外部でssisパッケージを実行するには、Integration Services以上の[成功したメールを送信]をインストールする必要があります。」
このQusetionのタイトルは、このユーザーに固有の逐語的なエラーメッセージであることに注意してください。エラーメッセージは、エラーメッセージ文字列にユーザー変数を代入するdtexecアプリケーションのバグを示しています。この場合、標準メッセージStandard E ditionはに置き換えられsend successful emailます。 「標準」のエラーメッセージは次のようになります。 説明:Business Intelligence Development Studioの外部でSSISパッケージを実行するには、Integration ServicesのStandard Edition以上をインストールする必要があります。 バージョンSSIS2012。パッケージは元々2005バージョンでした。ファイルシステム上のパッケージ。 ホスト1のDBエンジン/エージェント、ホスト2のSSIS。 ホスト2からの実行は正常に実行されます。ホスト1から実行すると、質問の件名にエラーが表示されます。この投稿を見ましたが、エンジンとエージェントはホスト1にインストールされています。正確なエラーを検索しても、Googleは結果を返しません(件名は正確で、エラーメッセージの文言は奇妙です)。 ありがとうございました!

4
未使用のインデックスを見つける方法は?
私はデータウェアハウスに取り組んでいます。最大2億レコードのテーブルがあります。これらのテーブルの一部には約20以上のインデックスがあります(そもそもそれらが作成された理由を説明することはできません)。これにより、これらのインデックスを維持する作業が非常に面倒になり、パフォーマンスとランタイムの両方でDWHインポートジョブに直接影響を与えます。 各テーブルで最も使用されていないインデックスを見つけるにはどうすればよいですか?(それらを取り除くために)
11 sql-server  ssms 

5
同じワークグループに接続されている他のコンピューターからSQL Serverデータベースにアクセスする方法
SQL Serverデータベースを使用するC#アプリケーションを作成しました。ワークグループで他のコンピュータを自分と相互に接続しています。C#アプリケーションを他の人と共有しました。アプリケーションを開くと、エラーが発生します SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした しかし、アプリケーションは私のPCで正常に動作しています。私が使用している接続文字列は Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159 これは.configファイルに保存されます。 アプリケーションは私のPCで正常に動作しています。私は何をしなければなりませんか?サーバーでTCP / IPを有効にしましたが、同じエラーが引き続き発生します。接続文字列などに変更がありますか?

2
SQL Serverトランザクションログバックアップ:最後の既知のログバックアップの後にテールログが続くかどうかをテストする
SQL Serverを完全復旧モードで使用しています。完全バックアップと一連のログバックアップを前提として、最後の完全バックアップから現在の末尾ログまでのログチェーンが完了しているかどうかを確認できるようにしたいと考えています。(これらのバックアップを実際に復元することなく、ここでの目的はバックアップの一貫性をテストすることです。) 既存のバックアップでこれを行う方法はすでに知っています。RESTOREHEADERONLYを使用して、すべてのファイルのFirstLSNとLastLSNを取得します。これらのファイルは、互換性があるかどうかを判断するために、連続ファイルで比較できます。 ただし、最後のログバックアップの後にテールログが続くかどうかを確認する方法がわかりません。 テールログのFirstLSNがある場合、それを最後のログバックアップのLastLSNと比較できます。しかし、どうすれば末尾ログのFirstLSNを取得できますか? SQL Server 2005以降(理想的にはt-sqlを使用)で機能するソリューションが必要です。これまでのところ、私はグーグルを検索して役に立たなかった。ところで 私は最初にこれをstackoverflowに投稿しました。トピックから外れているため、ここに移行しました。 編集 小さな例(SQL Server 2005、9.0.5057)で提供された2つのソリューションを試しました。 BACKUP DATABASE TestDb TO DISK = 'C:\temp\backup test\Full.bak' -- fire some update queries BACKUP LOG TestDb TO DISK = 'C:\temp\backup test\Log1.bak' -- fire both queries from the provided answers: -- Martin Smith's answer yields: 838886656088920652852608 -- Shawn …

3
SQL Server 2008 R2の一般的なメモリ要件
私はDBAの仕事の経験はありませんが、SQLサーバーに追加のリソースを要求するためのケースを作ろうとしていて、何人かが実行する必要のある大まかな概算を提供してくれる賢い人たちを集めることを望んでいました。ITが本番SQLサーバーに割り当てたリソースの割り当てが少ないのではないかと思います。 ハードウェアとソフトウェア: データベース:SQL Server 2008 R2エンタープライズデータベース Windows:Windows 2008 r2 Enterprise 64ビット、VMwareで実行していることを確認してください。 プロセッサー:Intel(R)Xeon(R)CPU E7-4860 @ 2.27GHz 2.26 GHz(2プロセッサー) 搭載メモリ:4GB データベースファイル用ハードドライブ:300 GB バックアップ用ハードドライブ:150GB ログ用ハードドライブ:100GB 応用: 合計で約170GBのデータを追加する3つのメインデータベース、同じサーバー上のReporting Servicesデータベース(SSRS)があり、毎日生成される多分10の異なるレポート(それぞれ平均70万件のレコードを含む)を格納しています。私たちのユーザーベースは約20人の同時ユーザーです。そのうち5人は、大量のデータを処理する大量のレポートを生成する「リソース集中型」と考えることができます。ユーザーの大半は、asp.net WebサイトおよびレポートサーバーWebサイトを介してデータベースと対話します。さらに、開発者はサーバーに直接リモート処理することにより、BIDSでSSISを広範囲に使用します(最大2つのリモート接続)。最後に、かなり複雑なデータウェアハウジング操作があり、サーバーでも実行されるSSISパッケージを介して、おそらく1日あたり300万件のレコードを取り込みます。 現在の問題: 慢性的なサーバータイムアウトがあり、ウェブサイトへの応答時間がかなり悪いです。私たちが持っているメモリの量(4GB)はおそらく大きなボトルネックだと思います。以前の追加メモリの要求は、より多くのクエリ最適化を実行する必要があるという一般的な応答で拒否されました。私たちはsqlの専門家ではありませんが(私たちのセットアップでわかるように)db adminの専門家ではありませんが、ハードウェアがボトルネック。 tl; drを回避してくれてありがとう!

3
SQL Server 2012 OLAPキューブによるWebサイトの支援は妥当と考えられていますか?
私は、大規模な小売チェーン向けのソリューションの設計を任されています。彼らは、120万人の各顧客がWebサイトにログオンして、約50のカテゴリーにわたる最近の購入(当月、前月、年初から現在まで)の分布を確認できるようにしたいと考えています。データは毎日1回更新されます。 SQL Server 2012ベースのOLAPキューブを作成し、プロアクティブキャッシュなどの機能を利用して、Webサイトにこのキューブを直接クエリさせることを考えています。ただし、私は中心的な開発者であるため、SQL Serverの分析サービスの部分についてはほとんど経験がないため、このソリューションのパフォーマンスについてはかなり心配しています。 WebサイトをOLAPキューブに直接接続することは、実現可能なソリューションのように聞こえますか?そのようなシステムは、SQL Serverのように複数のユーザーからの負荷に反応して、これを合理的な解決策にしますか、それともまったく異なる動作をしますか? ユーザーが自分のステータスを頻繁に確認することは期待していません。もちろん、Webサーバーなどでキャッシュを使用します。

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