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

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

5
SQL Server 2008のフルテキストインデックスが完了していないようです
当社のWebサイトには、Webサイト検索用のフルテキストインデックスを備えたSQL Server 2008 R2 Express Editionデータベースがあります。インデックスが作成されたテーブルの1つで新しいレコードが追加または更新されるたびに、インデックス作成プロセスが完了しないようです。 このサイトで見つかった基本的に同じクエリを使用して、過去数週間にわたってステータスを監視しています:http : //www.sqlmonster.com/Uwe/Forum.aspx/sql-server-search/2155/Why-is-this -人口がかかるほど長い これは、クエリを実行したときに表示されるものです(クリックするとフルサイズになります)。 インデックス付きテーブル内の最新のレコードは完全なものではなく、検索できません。テーブルにあまり多くのデータはありませんが、インデックス作成が完了するかどうかを確認するために何日も待機しましたが、何も変化しません。 インデックス作成を正常に完了することができる唯一の方法は、カタログを再構築するか、すべてのインデックスを削除して再作成することです。 私がそれをするたびに、最初の新しいレコードが追加されるとすぐに同じ問題が再発します。 念のため、サーバーの統計を以下に示します。 クアッドコアAMD Opteron 2.34GHz 4GB RAM Windows Server 2008 R2 Enterprise SP1 x64 SQL Server 2008 R2 Express Edition with Advanced Services x64

1
BLOBデータのBCPパフォーマンスの最適化
私は、2TBデータベースのパーティションテーブルへのライブマイグレーションを計画するプロセスです。システムは広範に言えばドキュメントストアであり、スペースの大部分は50kbから500kbのLOBに割り当てられ、500kbから1MBの範囲の小さな割合です。移行の一部には、古いデータベースから新しいデータベースへのBCPデータが含まれます。 データの現在/過去の区分により、最終的な切り替えに先立って(静かな期間中に)段階的に古いデータを抽出し、稼働中のシステムへの影響を最小限に抑えることができるため、BCPが好ましいアプローチです。データ量とストレージの可用性により、パーティションスキームへのその場での再構築が不可能になります。 BLOBの内容により、ROWS_PER_BATCHではなくKILOBYTES_PER_BATCHを試してみると、パフォーマンスがいくらか向上するのではないかと思われます。BCPドキュメントでは、SQLがこの値に基づいて操作を最適化できることが提案されています。 私が見つけることができないのは、これらの最適化の性質やテストを開始する場所に関するガイダンスです。提案がなければ、4/8/16/32 / 64mbの境界で短いランを開始してみます。 おそらくパケットサイズを変更することでいくらかの利点が得られます(サーバーレベルの設定ではなく、BCP -aパラメーター)。より一般的なアプローチがない限り、これを最大65535に上げる傾向があります。

5
SentryOne Plan Explorerは動作しますか?
SentryOne Plan Explorerは広告どおりに機能しますか?それは合法ですか?気をつけるべきことや心配することはありますか? SSMSの悪夢のような実行計画の見方と比較して、ホットパスを色で示しているように見えます。 私の懸念は-悪意のあるデータやその他のデータを変更しますか? 編集:私はそれについて聞いたばかりで、会社について聞いたことがありません。

2
大きなSQL Serverデータベースのトリミング
大規模なSQL Server 2008テストデータベース(1.9 TB)があり、ディスク上のサイズを縮小したい。未使用のテーブルを削除し、大量のデータをパージしましたが、ディスク上のサイズは減少しません。私は何をすべきか? SSMSのShrinkタスクを見てきましたが、オプションは戸惑っています。データベースまたはファイルを縮小しますか?そして、どのようなオプションがありますか?
13 sql-server 

4
リモートデータベース用のSQL Server Management Studio
リモートホストの専用サーバーにあるSQL Severデータベースを使用すると、同じサーバーまたはローカルコンピューターにインストールされたSQL Server Management Studioを使用して作業できます。私は最初にリモートデスクトップを使用して作業する必要があり、これにより作業が少し遅くなります。2番目のケースでは、サーバーのファイアウォールで追加のポートを開く必要がありますが、ユーザーエクスペリエンスはより快適になります。 これら2つの推奨プラクティスは何ですか?
13 sql-server  ssms 

1
SQL Server-クラスター化インデックスを使用する場合のデータページの保存方法
最近、クラスター化インデックスのデータページが連続して格納されていないことを聞きました。これは本当ですか? おそらく、データページは通常、規則のいくつかの例外を除いて連続して格納されていますか?または、間違っていると聞き、データページが常に連続して保存されている可能性があります。 どうもありがとう。

4
SQL Server 2005/8クエリ最適化のヒント
私は、より良いSQL Serverクエリを作成することについてチームを教育することを検討しており、パフォーマンスを向上させるための最良のヒントは何であるかと考えていました。 たとえば、count(*)がcount(1)よりもパフォーマンスが悪いと主張するDBAがいました(彼女が正しいかどうか、または最新のクエリオプティマイザーに対してまだ有効かどうかはわかりません)。 どのような単純なことをチームに伝えて、常に使用または回避を試みるべきですか?私は理想的には、(a)合理的な違いを生む可能性があり、(b)明言するために1-2行であるものを探しています。


3
T-SQLからの選択出力を非表示
クエリの実行時間を取得しようとしていますが、クエリの出力も非表示にします。経過時間だけが必要です-出力はありません。 例 DECLARE @Start datetime DECLARE @End datetime SELECT @StartTimeWA=GETDATE() SELECT [id] ,[database_id] ,[proc_name] ,[exec_t] from [DB].[dbo].[STAT] SELECT @End=GETDATE() SELECT DATEDIFF(MS,@Start,@End) AS [Duration] 現時点では、私は、クエリの出力を取得し、私は限り出力が行くようにしたい唯一のものです下の私の継続、で。私はこれを行うことができず、他の誰かが同様の問題に遭遇したかどうか疑問に思っていますか?これは、Management Studioやそのようなものではなく、T-SQLでやりたいことです。 selectステートメントを実行してサーバーに報告するのにかかる時間を監視しようとしています。私はそれを毎分実行し、時間を取り戻し(所要時間)、時間とともにトレンド/ベースラインに使用する外部モニターサーバーを持っています。現在のクエリは選択結果と私の継続時間を吐き出すので、それはそれを歪め、私の監視サーバーは混乱します。期間の列が必要でした。また、挿入に対してもこれを行います。これは、選択を実行する必要がないため簡単です。 私はこれを純粋にT-SQLでやろうとしています。クエリを実行するときにかかる時間(スナップショット)を取得し、サーバーがさまざまなレベルの負荷を通過するときにこれが変化するかどうかを確認したいので、DMVを使用したくないクエリの実行時間が変わるかどうか。
13 sql-server  t-sql 

2
varchar(max)8000列と、8000文字以上を格納できる理由を理解する
この Microsoftドキュメントから、+ nは文字列の長さを定義し、1〜8,000の値にできます。maxは、最大ストレージサイズが2 ^ 31-1バイト(2 GB)であることを示します。ストレージサイズは、入力されたデータの実際の長さ+ 2バイトです。 これを理解してください。 varcharの最大文字数8000はのよう2GBです。これは、データの価値よりもはるかに少ないです。 varchar(max)特定のテーブルのこの列には、len(mycolumn)100,000を超えるレコードがあることがわかります。したがって8000、varchar(max)列よりも文字数が多いことがわかります。 質問1:8000キャラクターはどのように登場し、どこで注意すべきですか? 質問2:この列に対する.netデータリーダークエリは、常に100 000+文字の完全な結果を返しますか?

2
SQLでの置換の使用
テーブルがあり、いくつかの名前を更新する必要がありますが、 次のクエリ: 両方とも同じことをしますか? クエリ1 Update mytable Set Name = Replace(Name,'Jeff','Joe') クエリ2 Update mytable Set Name = 'Joe' where Name = 'Jeff'
13 sql-server 

1
未使用のNONCLUSTERED INDEXでクエリの速度を向上させることはできますか?
これは奇妙な状況ですが、誰かが答えを持っていることを望んでいます。 いくつかのパフォーマンストラブルシューティング中に、NONCLUSTERED INDEXをテーブルに追加しましたsp_BlitzIndex。翌日にその使用状況を確認したところ、読み取り数が0(スキャン/シークが0、シングルトンルックアップが0)であったため、無効にしました。 すぐに、INDEXを追加したときに最初にチェックして解決しようとしていたのと同じアプリの遅さ(パフォーマンスの問題)の苦情を受け取ります。 さて、理論的には、これはまったく偶然のように聞こえます。インデックスは、証明可能、測定可能、使用されていません。無効にしても、クエリのパフォーマンスが低下することはありません。しかし、それはほとんどだTOO偶然。 質問 したがって、私の質問は、単純に十分なものです。 それはすべての可能で、その利用統計情報(のDMVから/非クラスタ化インデックスは、こと、sp_BlitzIndex)まだされており、NOの使用状況を表示しません助けて影響を受けたテーブルの上に何らかの形でクエリのパフォーマンスを?

3
ユーザーが属するADグループログインは何ですか?
この質問に適切なタイトルを選択したかどうかはわかりません。私が本当に望んでいるのは、個々のWindows ADユーザーが与えられた場合、このサーバーの特定のデータベースにアクセスできるWindows ADグループ(ログイン)のリストを見つけたいです 次のクエリを実行すると select name, principal_id, type, type_desc, default_schema_name, create_date, modify_date, owning_principal_id, sid, is_fixed_role from sys.database_principals 私のサーバーで Microsoft SQL Server 2008 R2(SP1)-10.50.2500.0(X64)2011年6月17日00:54:03著作権(c)Windows NT 6.1(ビルド7601:Service Pack 1)上のMicrosoft Corporation Standard Edition(64ビット) 次の結果が得られます(一部のリスト): 特定のログインが持つすべての許可を知る必要があります。このログインは、ADグループを介してサーバー/データベースにアクセスできます。 1)上記のリストから、私のログインはどのADグループに属しますか? 以下でこれを行っていますが、このユーザーが属するADグループ(上記の図に従ってこのサーバーにアクセスできる)のリストを見つけたいと思います。 まず、問題のユーザーとして実行します EXECUTE AS LOGIN='mycompany\HThorne' DECLARE @User VARCHAR(20) SELECT @USER = SUBSTRING(SUSER_SNAME(), CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME())) …


1
UPDLOCKによりSELECTがハング(ロック)するのはなぜですか?
テーブル全体をロックするSQL SERVERにselectがあります。 セットアップスクリプトは次のとおりです(上書きしないようにしてください)。 USE [master] GO IF EXISTS(SELECT 1 FROM sys.databases d WHERE d.name = 'LockingTestDB') DROP DATABASE LockingTestDB GO CREATE DATABASE LockingTestDB GO USE [LockingTestDB] GO IF EXISTS(SELECT 1 FROM sys.tables t WHERE t.name = 'LockingTestTable') DROP TABLE LockingTestTable GO CREATE TABLE LockingTestTable ( Id int IDENTITY(1, 1), Name …

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