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

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

3
手続き型クエリが絶対に必要なのはいつですか?
SQL Server内でカーソルとループをあらゆるコストで回避する傾向があることは知っていますが、手続き型クエリが絶対に必要で、セットベースのクエリでは結果が得られない状況は何ですか? 2つの違いを理解していますが、カーソルを使用する必要がある状況に至ったことがありません。そのような状況があるのだろうか。

6
MS SQL Serverモニタリングソフトウェアまたはサービスの推奨事項 [閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、データベース管理者のスタック交換のトピックになるようにします。 6年前休業。 MS SQL Serverインスタンス(2000、2005)が20〜30台のサーバーに分散しているクライアントがあります。私は物事の整理に従事しており、定期的にデータベースインフラストラクチャの状態を確認したり、バックアップをテストしたりしています。また、2008年までにこれらのデータベースをできるだけ多く取得する予定です。 Linuxスタックのウェブアプリやデータベース向けのNew Relicなどのサービスを知っていて、Google経由でSQL Monitor製品(RedGate)に出会いました。私や私のクライアントがMS SQLインスタンスを監視および管理できるようにするサービスまたはツール(経験がある)に関して、誰かが何らかの方向性を提供できますか?

4
複合キーを使用して行を識別するためのガイダンス
行を一意であると識別するために4つの列のセットを使用する(1つは外部キーで、他の3つはfloatデータ型である)ことは良い習慣ですか(または悪影響がありますか)?(4つのキーがリンクされた)テーブル内の一意のエントリを表すテーブルを作成しようとしています。これが攻撃の良い計画なのか、それとももっと良い方法があるのか​​、私は興味があります。 視覚的な目的で、次の表を想像してください。次の表のように編成された在庫アイテムがあります:([K]は主キーの記号、線は関係です) Sheet_Class Sheet_Type Sheet_Size =========== ========== ========== [K] Sheet_Class-. [K] Sheet_Type--. [K] Sheet_Size '---- Sheet_Class '---- Sheet_Type Length Width Thickness データは次のように表示される場合がありますが、簡潔にするために、リンクされた列を持ち込むことは除外しました。 Sheet_Class Sheet_Type Sheet_Size (Tables) [Sheet_Class] [Sheet_Type] [Length], [Width], [Thickness] (Column Values) ============= ============ ============================== Aluminum 5052-H32 48, 96, 0.032 48, 96, 0.040 48, 96, 0.063 6061-T6 60, 120,0.032 …

2
select(SQL Server)内で変数を使用する方法
列を計算し、その結果を複数の列で使用する場合、計算を2回行わずにこれを行うにはどうすればよいですか? 例: SELECT LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com' as EMail ,hashbytes('SHA1', LOWER(SUBSTRING([NAME], 4, 100)) + '@somedomain.com') as HashedEmail FROM sometable 複数のselectを使用せずにこれを2回書くことを避けるにはどうすればよいですか?

3
トリガーを使用して別のテーブルを更新するのは賢明ですか?
別のデータベースからObject統合サービス(必要に応じて変更できます)からデータを入力したテーブルがあります。特定の時点で、特定の整数値があるObjectObjectGroup (ObjectId, ObjectGroupId)場合に必要な別のテーブルに手動で投稿を追加する必要がありObject.ObjectTypeます。統合サービスはそのような更新を処理しないので、疑似コードでは次のようなトリガーをObjectテーブルに追加することを考えています。 if Object.ObjectType = 10 begin if Object.ObjectNumber like '<string pattern>' begin insert into ObjectObjectGroup values... end end これは賢明な設定ですか、それともパフォーマンスの点でより良い方法がありますか?

3
SSMSのSQLCMDモードと@@ variable展開
(コマンドラインからではなく)SSMSでSQLCMDモードを使用する場合、現在のサーバーとインスタンスを変数に割り当てる方法はありますか?これは、通常のTSQL変数の割り当てとは異なります。 問題の定義 SQLCMDの変数拡張機能を使用して、導入した既存のtsql文字列構築マッシュの代わりに、配置スクリプトの環境固有の値を置き換えたいと思います。現在の環境の1つの例外を除いて、SQLCMDを使用してデプロイを処理することは非常にうまくいきました。 -- -- define 2 sqlcmd variables that will be expanded in scripts -- :setvar dbServer "DEVA2\DEV2" :setvar dbNotServer @@servername SELECT '$(dbServer)' AS hard_coded_value , @@servername AS [servername] , '$(dbNotServer)' AS dbNotServer そして、それは以下の結果を生成します。 hard_coded_value servername dbNotServer DEVA2\DEV2 DEVA2\DEV2 @@servername ミートローフは3分の2は悪くないと言っていますが、私は3分の3の解決策を持っていると思います。スクリプトがテストサーバーに展開されたとき、スクリプトの編集を展開担当者に任せたくありません。 SQLCMDを使用するための唯一の解決策がコマンドラインからスクリプトを完全に呼び出すことである場合、私はそれを受け入れることができますが、SQLCMDを使用するのは環境に優しいので、ここでこれを捨てたいと思います。 望ましい出力 :setvar dbNotServer @@servername SELECT '$(dbNotServer)' AS …

9
オンラインゲーム(数千人のプレイヤー)に十分な速度のDBMSはどれですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 私は現在、MMORPGゲームを作成しています。これは、同時に数千人のプレイヤーがオンラインでいる可能性があります(おそらくそうではありません。希望的な考えだけです)。最初にMySQLを使用したかったのですが、この規模では十分に高速ではないと聞きました。 どのDBMSが十分に高速ですか?SQL Serverはどの程度似ていますか(私は学校でSQL Serverを学びました)。

4
SQL Server DBのパフォーマンスがハードウェアに制限されているかどうかを確認するにはどうすればよいですか?
現在シングルユーザーの負荷がかかっているアプリのテスト-テストデータが本番サイズ(テーブルあたり400k〜2M行)に増加したため、一部のSELECT spは十分に高速ではなくなりました(テストデータが限られているため、以前はそれぞれ30ミリ秒未満でしたが、現在は100〜200ミリ秒ですが、数ミリ秒あるため、UIで遅延が明らかになっています)。

3
大規模なSQL Serverデータベース設計の提案
MSSQL 2008 R2 Standardでデータベースを作成し、そこに多数のレコードを格納します。毎年1つのテーブルで2億件以上のレコードを見積もり、主にデータのUPDATEまたはDELETEをほとんど行わずにINSERTを実行しています。これは、履歴レコードを毎日挿入するデータアーカイブシステムです。ユーザーの要求に応じて、この履歴レコードに関するさまざまな種類のレポートを生成するため、いくつかの懸念があり、技術的な入力とアドバイスが必要です。 この種のアーカイブテーブルとデータベースを管理する最良の方法は何ですか?

4
一括データインポートの提案
現在、Excelスプレッドシートからデータをインポートする必要があるプロジェクトに取り組んでいます。データは事前​​に定義されたテンプレートからインポートされ、考えていることから、まず一時テーブルにデータをアップロードしてクリーニング操作を実行します(不要な情報の削除、親テーブルへの新しい行の追加、それらのFKの取得など)。 私が知っている必要があるのは、私たちの努力を減らすことができるツールやユーティリティがあることです。 さまざまなソース(主にExcelスプレッドシートから)から一括レコードを挿入する最良の方法は何ですか?

4
DBポリシーがセキュリティ監査に合格する必要があることを確認するために何をする必要がありますか?
私は近々監査を行っており、ERPシステムのデータベースを監査するときに監査人がどのような物理的、電子的、論理的なアクセス制御を探すのか疑問に思っていました。私はこのプロセスに本当に慣れていないので、どんなガイダンスもいただければ幸いです。

1
単調に増加する値のためのSQL ServerのBツリーノード分割戦略
IDENTITY型の列など、常に単調に増加する値のBツリーインデックスについて考えます。従来のBツリーの実装では、ノードがいっぱいになると常に50%/ 50%に分割され、(ほとんど)すべてのノードが50%だけいっぱいになるBツリーになります。 私は、Oracleが値が増加し続けるときを発見し、そのような場合にOracleが90%/ 10%の分割を実行することを知っています。そうすれば、(ほぼ)すべてのノードが90%満たされ、これらの非常に一般的なケースではるかに優れたページ使用率が得られます。 SQL Serverの同様の機能に関するドキュメントを見つけることができませんでした。ただし、N個のランダムな整数とN個の連続した整数をそれぞれインデックスに挿入する2つの実験を実行しました。前者のケースは後者をはるかに多くのページを使用しました。 SQL Serverは同様の機能を提供しますか?もしそうなら、あなたは私にこの機能に関するいくつかのドキュメントを教えてもらえますか? 更新: 以下の実験では、リーフノードは分割されず、内部ノードは50%/ 50%に分割されているようです。これにより、増加するキーのBツリーは、ランダムキーよりもコンパクトになります。ただし、Oracleによる90%/ 10%アプローチはさらに優れており、実験で確認された動作を検証できる公式ドキュメントを探しています。

1
列でALTER TABLEを実行すると、列がNOT NULLからNULLになるのはなぜですか?
SQL Serverデータベースを一括更新しています。すべてのnumeric(38,0)列をint (はい、SQL ServerスクリプトはOracleスクリプトから作成されました)に変更しています。SMOとC#(私はswエンジニアです)を使用して、SQL Server Management Studioのように本当に素晴らしいスクリプトを生成することができました。1つの特定の問題を除いて、すべて非常にうまく機能します。 ほんの一握りのテーブルのために、私がALTER TABLE [myTable] ALTER COLUMN [columnA] INTそれを呼び出すと、列もから変更することにしますNOT NULL to NULL。もちろん、それらの特定の列にあるほとんどのテーブルの主キーを再生成する必要があるため、これは大きな問題です。 明らかに、私はSMOを使用して、どの列が主キーであるかを見つけ、データ型の更新中または更新中にそれらを強制的にNOT NULLにする多くのオプションを持っていますが、これが何が原因であるかについては本当に興味があります。

2
このwhere句を結合に置き換えるにはどうすればよいですか?
通常、次のようなSQLを使用している場合: select * from employees where epmloyeeTypeId in (select id from type where name = 'emp') 私whereはこれで置き換えます: select e.* from employees e inner join type t on t.id=e.epmloyeeTypeId and t.name = 'emp' それが句not inではなく(以下のように)である場合、逆で同じことをすることは可能inですか? INSERT into Subscriptions(ProjectId, RecordTypeCID, NTID, Active, Added, LastUpdate, UpdateBy) SELECT @ProjectId, RecordTypeCID, @NTID, 1, GETDATE(), GETDATE(), …

1
フルプランキャッシュの動作
SQL Server 2005では、プランキャッシュがいっぱいになるとどうなりますか?私はいくつかの調査を行いましたが、収集された小片から、キャッシュされたプランには、その重み、つまりコンパイルのコストに、キャッシュされてから実行された回数を掛けた「年齢」が与えられているようです。時間が経過すると、この経過時間は減少して0になり、「経過時間」と見なされ、必要に応じてフラッシュの候補になります。プランのキャッシュがいっぱいになると、期限切れのプランがキャッシュからフラッシュされます。 このシナリオを複雑にするために舞台裏で起こっていることは他にありますか? おかげで、 マット

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