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

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

2
連続処理中のインデックスの断片化
SQL Server 2005 900Mのレコードテーブルで約350Mのレコードを継続的に処理できる必要があります。処理するレコードを選択するために使用しているクエリは、処理中に著しく断片化され、インデックスを再構築するために処理を停止する必要があります。疑似データモデルとクエリ... /**************************************/ CREATE TABLE [Table] ( [PrimaryKeyId] [INT] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED, [ForeignKeyId] [INT] NOT NULL, /* more columns ... */ [DataType] [CHAR](1) NOT NULL, [DataStatus] [DATETIME] NULL, [ProcessDate] [DATETIME] NOT NULL, [ProcessThreadId] VARCHAR (100) NULL ); CREATE NONCLUSTERED INDEX [Idx] ON [Table] ( [DataType], …

3
この完全外部結合が機能しないのはなぜですか?
以前は完全外部結合を使用して希望の結果を得ていましたが、単純な結合を実現できないため、概念を完全に理解できていない可能性があります。 それぞれ2つのフィールドを持つ2つのテーブル(t1とt2と呼びます)があります。 t1 Policy_Number Premium 101 15 102 7 103 10 108 25 111 3 t2 Policy_Number Loss 101 5 103 9 107 20 私がやろうとしていることは、両方のテーブルとPolicy_NumberからPremiumとSum of Lossesの合計を取得することです。私が使用しているコードは: select sum(premium) Prem_Sum, sum(Loss) Loss_Sum, t1.policynumber from t1 full outer join t2 on t1.policynumber = t2.policynumber group by t1.policynumber 上記のコードは正しい合計を返しますが、一致するpolicy_numberがないすべてのレコードを「NULL」policy_numberでグループ化します。 結果がこのように見えるようにしたい Policy_Number Prem_Sum …

3
この表に数値を挿入するときに、先頭のゼロをどのように保存しますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、データベース管理者のスタック交換のトピックになるようにします。 8年前休業。 テーブルに2つのレコードを挿入しました。 create table num(id int) insert into num values(0023) insert into num values(23) select * from num クエリすると、すべてと表示され23ます。つまり、SQL Serverは先頭の0を無視します。その背後にあるメカニズムは何ですか?SQL Serverで、挿入時に値を返すにはどうすればよいですか(つまり0023、および23)?

2
非クラスター化インデックスの挿入
次のようなテーブルがあるとします。 create table SomeTable ( id int identity(1, 1) not null primary key clustered, SomeString1 varchar(50) not null, SomeString2 varchar(50) not null ) go create nonclustered index IX_SomeString1 on SomeTable(SomeString1) go 私がこれをするなら: insert into SomeTable(SomeString1, SomeString2) values('foo', 'bar') go 実際の実行計画を表示すると、クラスター化インデックスの挿入しか表示されません。実行プランに非クラスター化インデックスの挿入が表示されないのはなぜですか?
10 sql-server 

1
SQL Serverベースラインテストの手順の決定的なリスト?
SQL Serverを使用するアプリのパフォーマンステスト/ベースラインを実行する前に、インスタンスを再起動せずにインスタンスを「クリーン」な状態に設定できるようにしたいと考えています。私は従う傾向があるステップがありますが、正しい順序であり、冗長なステップがない決定的なリストを作成したいと思います。 この手順の一覧では、SQL Serverを「クリーン」な状態に設定できますか? シーケンスは論理的/正しいですか? 余分な手順はありますか? CHECKPOINT -- Write all dirty pages DBCC DROPCLEANBUFFERS -- All should be clean after checkpoint? DBCC FREEPROCCACHE -- Clear the plan cache DBCC FREESYSTEMCACHE -- Is this necessary after FREEPROCCACHE? DBCC FREESESSIONCACHE -- May not be necessary if distributed queries aren't used, but want …



6
SQL Serverはクエリを並列で実行しますか?
SQL Serverはクエリを並列で実行しますか?言い換えると、実行に10秒かかる重いクエリを実行し、同時に10秒かかる別の重いクエリを開始した場合、2番目のクエリは実際に10秒後に開始するか、両方を同時に開始しますか?
10 sql-server 


2
SQL Serverは、テーブルの選択中にロックを取得する順序をどのように決定しますか?
システムに負荷がかかっているときにデッドロックする2つのストアドプロシージャがあります。プロシージャBが同じテーブルに挿入している間に、プロシージャAはテーブルから選択しています。ロックグラフは、Proc AがProc BがIXモードロックを必要とするSモードページロックを持っていることを示していますが、Proc Aは、Proc BがすでにIXモードページロックを持っている別のページのSモードページロックを待機しています。 明らかに、両方のクエリがテーブル内のページを同じ順序でロックすることを確実にすることによってこれを整理することができますが、その方法を理解できません。 私の質問は、SQL ServerはどのようにINSERTとSELECTを実行しているときにページをロックする順序を決定し、この動作をどのように変更できるかを教えてください。

2
IsolationLevel.ReadUncommittedで発行された共有ロック
IsolationLevel.ReadUncommittedを使用すると、クエリでロックが発行されないはずです。しかし、これをテストすると、次のロックが表示されました。 Resource_Type:HOBT Request_Mode:S(共有) HOBTロックとは何ですか?HBT(ヒープまたはバイナリツリーロック)に関連する何か? なぜまだSロックを取得するのですか? 分離レベルのスナップショットオプションをオンにせずにクエリを実行するときに、共有ロックを回避するにはどうすればよいですか? SQLServer 2008でこれをテストしていますが、スナップショットオプションはオフに設定されています。クエリは選択のみを実行します。 SQL Serverがロッククエリでそれを表示していないようですが、Sch-Sが必要であることがわかります。それでも共有ロックが発行されるのはなぜですか?による: トランザクション分離レベルの設定(Transact-SQL) READ UNCOMMITTEDレベルで実行中のトランザクションは、他のトランザクションが現在のトランザクションによって読み取られたデータを変更するのを防ぐために、共有ロックを発行しません。 だから私は少し混乱しています。

1
ストアドプロシージャごとのタイムスパンごとの呼び出し数を監視するにはどうすればよいですか?
パフォーマンスの問題を診断するために、システムパフォーマンスと比較して、特定のプロシージャが呼び出される回数をよりよく理解したいと思います。特定の期間中に各プロシージャが呼び出された回数を取得する方法はありますか?

3
Datawarehouse Design:結合された日付時間ディメンションと、個別の日付および時間ディメンションとタイムゾーン
新しいデータウェアハウスの設計を開始したばかりで、日付と時刻のディメンションがどのように機能するかを設計しようとしています。複数のタイムゾーン(おそらく少なくともGMT、IST、PST、EST)をサポートできる必要があります。最初は、おそらく15分の粒度まで1つの広い日付時刻ディメンションを組み合わせると考えていました。これにより、ファクトテーブルに1つのキーがあり、サポートされるすべてのタイムゾーンのすべての異なる日付時刻データが1つのディメンションテーブルに含まれます。(つまり、日付キー、GMT日付、GMT時間、IST日付、IST時間など...) キンボールは、テーブルが大きくなりすぎないように(データウェアハウスツールキットp。240)、時間ディメンションとは別の日ディメンションを使用することを推奨していますが、これは、各タイムゾーンのファクトテーブルに2つのキーがあることを意味します。サポートする必要があります(1つは日付用、もう1つは時刻用)。 私はこの領域で非常に経験が浅いので、誰かが2つのアプローチ間のトレードオフ、つまりパフォーマンスとすべての異なるタイムゾーンキーの管理のトレードオフを知っていることを望んでいます。おそらく他のアプローチもあるかもしれませんが、ファクトテーブルにタイムゾーンごとに別の行があることを話している人を見たことがありますが、ファクトテーブルが数百万の行である場合、タイムゾーンを追加するためにそれを4倍にする必要があるという問題のようです。 15分の粒度を使用すると、日付時刻ディメンションテーブルに1年あたり131,400(24 * 15 * 365)行が含まれます。これは、パフォーマンスにとってそれほどひどく聞こえませんが、いくつかをテストするまで確実にはわかりません。プロトタイプクエリ。ファクトテーブルに個別のタイムゾーンキーがあることの他の問題は、クエリが目的のタイムゾーンに基づいてディメンションテーブルを別の列に結合する必要があることです。これはおそらくSSASが処理しますが、よくわかりません。 どんな考えにも感謝します、-Matt

3
2つ以上の列の条件付き順序を作成する方法
MS SQL Server 2005では、条件付き並べ替えを使用して1つのクエリを作成していますが、2つの列を使用して条件付き並べ替えを行う方法がわかりません。 私がこのようなコードを書いた場合、それは正常に動作しています select * from table order by case @pkr when 'kol' then kol when 'nci' then nci end 2つ以上の列の条件付き順序を作成する方法がわかりません select * from table order by case @pkr when 'KOL-NCI' then kol,nci when 'kol-MPCI' then kol,mpci end 動的TSQLを作成して使用するアイデアがありますが、sp_executesqlまだより良いアイデアを探していますか?

3
SQLサーバーのストレステストを行う方法 [閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、データベース管理者のスタック交換のトピックになるようにします。 3年前休業。 私は、MSSQLサーバーとMySQLサーバーのストレステストを担当しています。現在のシステムと新しいシステムでパフォーマンスを比較するために使用できるツールやスクリプトがあるかどうか知りたいのですが。 ディスクとプロセッサの読み取り/書き込みパフォーマンスを測定したいと思います。役に立つかもしれない何か他のものも素晴らしいでしょう。 ありがとう!

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