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

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

3
SQL Server TDEの代替
透過的データ暗号化機能を含むSQL Server Enterprise Editionのコストが高いため、代替製品を探していますが、いくつかのオプションしか見つかりませんでした。 DbDefence NetLib暗号化 上記の製品のいずれかでの経験の詳細(パフォーマンスへの影響、使いやすさなど)を誰かが提供できますか? SQL Server TDEの他の選択肢はありますか? 注:現在SQL Server 2008 R2 Standard Editionを使用しています。

3
値のいずれかがサブクエリ結果にあるかどうかを確認します
注文IDのリストを返す複雑なサブクエリがあります。これらの注文がある顧客のリストを取得する必要があります。問題は、顧客を注文に割り当てる方法が2つあることです(2つのフィールドのうちの1つ)。私はこのようなことをすることができます: select * from Customers where orderId in (select...) or secondaryOrderId in (select ...) 問題は、サブクエリが実行にかかる時間と画面スペースの両方で非常に大きいことです。いずれかのフィールドに目的の結果が含まれているかどうかを確認する方法はありますか?

1
ビューでの集計操作はインデックスを無視する[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、データベース管理者のスタック交換のトピックになるようにします。 5年前休業。 シナリオ かつては、ETLプロセスに参加し、多数のサードパーティソースからのさまざまな形式のファイルの受信カタログとして機能するステージングデータベースが小さな会社にありました。EはDTSパッケージを介して処理され、監査または制御のための制御構造はほとんどありませんでしたが、「十分十分」と見なされ、すべての意図および目的はそうでした。 E部分によって提供されるデータは、少数の若くて有能なプログラマーによって開発および管理される単一のアプリケーションによる消費を目的としています。当時のデータウェアハウジング技術に関する経験や知識はありませんが、アプリケーションコードから独自のTおよびLプロセスを設定および作成しました。驚いたことに、これらの未熟なソフトウェアエンジニアは、部外者が「理想的とは言えない車輪」と呼ぶものを発明しましたが、「現在十分」を常に存在するサービスレベルとして、運用フレームワークを提供することができました。 しばらくの間、密に結合された領域ではすべてが順調で、ステージングカタログは12のサードパーティのデータをごちそうし、アプリケーションによって供給されていました。アプリケーションが成長するにつれて、その欲求も大きくなりましたが、熟練した白人の騎士の開発者がシステムを監視しているため、これらの欲求は、多くの場合、迅速に対処されました。 しかし、もちろん黄金時代は永遠に続くことはできませんでした。アプリケーションの成功によって繁栄がもたらされ、ビジネスはどんどん成長しました。それが成長するにつれて、ステージング環境とアプリケーションはそれとともに成長することを余儀なくされました。すべての警戒のために、ほんの一握りのヒーロー開発者は、現在の拡張システムを維持するのに追いつくことができず、消費者は自分のデータを受け取る資格がありました。もはやそれは彼らが必要とするもの、あるいは望んでいるものの問題ではなかったが、大衆は彼らがそれに値するだけでもっと多くを要求すると感じた。 ビジネスは盗品でいっぱいの金庫で武装して、市場に手を差し伸べ、成長し続けるシステムをサポートするのを助けるために開発者と管理者を雇いました。あらゆる精神の傭兵が会社に集まりましたが、この成長により、利用可能な専門家のガイダンスにはほとんど影響がありませんでした。新しい開発者と管理者は、欲求不満のせいですべての戦争が起きるまで、自家製のスイートの複雑さを理解するのに苦労しました。各部門はすべての問題を単独で解決しようと試み始め、お互いに取り組むよりもお互いに取り組むためにより多くのことをしました。単一のプロジェクトまたはイニシアチブは、それぞれがわずかに異なるいくつかの異なる方法で実装されます。そのすべての緊張は白い騎士の一部にとっては大きすぎることが判明し、彼らが倒れると帝国は崩壊しました。間もなく、システムは混乱状態になりました。 スパゲッティコードの悪質な約束に対するこれらの分野の変化にもかかわらず、会社は耐えました。結局のところ、それは「十分に良い」でした。 チャレンジ いくつかの政権交代と後の採用担当者の採用で、私は会社の雇用に気づきました。大戦から長い年月が経ちましたが、被害は依然として非常に目に見えます。システムのE部分のいくつかの弱点に対処し、DTSパッケージをSSISにアップグレードすることを装っていくつかのコントロールテーブルを追加できました。これらは現在、実際のデータウェアハウジングの専門家が通常の作成時に使用しています文書化されたTおよびLの交換。 最初のハードルは、値を切り捨てたり、ネイティブデータタイプを変更したりすることなく、再ロードとパージのためのいくつかの制御キーを含める方法で、サードパーティのファイルからデータをインポートすることでした。これはすべてうまくいきましたが、アプリケーションはこれらの新しいテーブルにシームレスで透過的な方法でアクセスできる必要がありました。DTSパッケージはテーブルにデータを入力し、アプリケーションによって直接読み取られます。SSISのアップグレードはQAの理由で並行して実行する必要がありますが、これらの新しいパッケージにはさまざまな制御キーが含まれ、パーティションスキームも活用します。実際のメタデータの変更だけでなく、いずれにしても新しいテーブルを完全に保証できるほど重要になる可能性があるため、新しいSSISパッケージには新しいテーブルが使用されました。 信頼性の高いデータインポートが機能し、倉庫チームによって使用されているため、実際の課題は、ステージング環境に直接アクセスするアプリケーションに新しいデータを提供することであり、アプリケーションコードへの影響は最小限(「いいえ」)です。このため、私はビューを使用することを選択しました。テーブルの名前をdbo.DailyTransactionto などに変更し、ビューdbo.DailyTranscation_LEGACYのdbo.DailyTransactionオブジェクト名を再利用します。LEGACY指定されたテーブル。これらのテーブルに含まれる長年のデータを再ロードすることはビジネスの観点からの選択肢ではないため、新しいSSISで作成されパーティション化されたテーブルが本番環境に移行するため、古いDTSインポートはオフになり、アプリケーションは新しいテーブルの新しいデータにもアクセスします。この時点で、ビューは更新され、新しいテーブル(dbo.DailyTransactionCompleteたとえば)からデータを選択できるようになります(使用できない場合はレガシーテーブルから選択します)。 実際、次のようなことが行われています。 CREATE VIEW dbo.DailyTransaction AS SELECT DailyTransaction_PK, FileDate, Foo FROM dbo.DailyTransactionComplete UNION ALL SELECT DailyTransaction_PK, FileDate, Foo FROM dbo.DailyTransaction_LEGACY l WHERE NOT EXISTS ( SELECT 1 FROM dbo.DailyTransactionComplete t WHERE t.FileDate = l.FileDate ); …

1
トレースフラグ1222が機能していませんか?
同様に構成された2つの2008r2 SQL Server "A"と "C"を使用する顧客サイトがあります。両方のサーバーで、トレースフラグ1204および1222が有効になり、DBCC tracestatus両方のサーバーで次のように表示されます。 TraceFlag Status Global Session 1204 1 1 0 1222 1 1 0 3605 1 1 0 Aでは、トレースフラグは期待どおりに機能し、デッドロックが発生すると、エラーログに1204と1222の両方のデッドロックレポートが記録されます。ただし、Cでは、1204レポートのみが表示され、1222レポートは取得されません。 私の人生では、この違いの理由はまったくわかりません。私はこれを広範囲にグーグルで調べ、これらのトレースフラグに関するMSドキュメントを読んだ(そして再度読んだ)ので、このような動作のレポートも、何が原因であるかについてのヒントも見つかりません。近づく唯一のことは、どちらのトレースフラグも機能していないという時折の主張ですが、これらはすべて、有効化コマンドにタイプミスがあった場合のケースであることが判明しました。DBCC TRACESTATUSを使用して確認しているため、これは当てはまりません。 そのため、トレースフラグ1222 のみが機能しない原因となる可能性のある原因、および/またはそれを修正する方法についての洞察は、高く評価されます。 さて、ここに興味深い展開があります。自分でデッドロックを生成するたびに(このコードを使用:https : //stackoverflow.com/questions/7813321/how-to-deliberately-cause-a-deadlock)、両方のトレースレポートがエラーログに記録されます。デッドロックレポートの1つのみをトリガーするように見えるのは、アプリケーションから数日ごとに発生する「自然な」デッドロックだけです。これが役立つかどうかはわかりませんが、トレース1222が1204と同じデッドロック状態のすべてについて報告しないと考える理由はありますか?

1
単一のクエリですべての孤立レコードを取得するにはどうすればよいですか?
主キーを参照しない孤立したレコード(外部キー)を持つテーブルがいくつかあることに気づきました。テーブルにクエリを実行して、そのようなすべての行のリストを取得するにはどうすればよいですか?これらの親レコードが削除されたとき、またはこれをどのように処理しますか? 私はSQL Server 2008 R2を使用しており、クリーンアップ後に3つの類似したデータベースを1つにインポートしようとしています。アドバイスしてください。 サンプルの子テーブル(DocumentDistribution)と親テーブル(DocumentSource)のスクリプトを作成しました。 ALTER TABLE [dbo].[DocumentDistribution] WITH NOCHECK ADD CONSTRAINT [fk_documentdistsourceid_documentsourceid] FOREIGN KEY([DocumentDistSourceID]) REFERENCES [dbo].[DocumentSource] ([DocumentSourceID]) GO ALTER TABLE [dbo].[DocumentDistribution] CHECK CONSTRAINT [fk_documentdistsourceid_documentsourceid] テーブルが関係にあり、外部キー制約が明示的に定義されていることを教えてくれませんか?

1
最新のサーバーでのパフォーマンスの低下
実稼働環境にはいくつかのdbサーバーがあり、そのうち4つはハードウェア構成が非常に似ています。Dell PowerEdge R620、唯一の違いは、最新の2つ(3か月前に購入および構成されたもの)にRAIDコントローラーv710、256GB RAM、およびCPUが2つの物理Xeon E5-2680 2.80GHzであることです。古いもの(約1年前に購入および構成されたもの)には、RAIDコントローラーv700、128GB RAMがあり、2つの物理Xeon E5-2690 2.90GHzで実行されています。BIOSの更新、すべてのドライバーの最新バージョンへの更新など。実行中のすべてのSQL Server 2008R2 Enterprise(SP1)が最新のCUおよびWindows 2012R2 Standardに更新されました。どちらも200 GB SSD x5 RAID10で動作します。それぞれで実行されているデータベースは1つだけで、SSISパッケージを呼び出すジョブを使用して同期されます。私たちのシステム管理者は、ハードウェアやネットワークの設定ミスや失敗がないことを確認するために、多くのパフォーマンスとストレステストを実行しました。予想通り、最新のものはより良いパフォーマンス結果を示しています。ここまでは順調ですね。 私たちが抱えている問題は、Kibanaの画面キャプチャーで確認できます。黄色とオレンジは2つの新しいサーバー(テーブルでは6、7)で、他のすべてのサーバーの下にあります。これらの2つの新しいサーバーの応答時間が遅いことが完全にわかります。それだけでなく、これらの2つのサーバーの負荷も、2つの古いサーバーよりもわずかに少なくなっています(表の淡い青色と濃い青色の線-4,5)。 パフォーマンスカウンターに関する情報を収集するいくつかの監視スクリプトを用意します。DMVと3番目の監視ツールで可能な限り掘り下げたので、私は多くの情報を手元に持っています。しかし、この遅い応答時間に対する答えを見つけることができないため、ここで見逃していることがあるはずです。 最新の2台のサーバーはRAMの使用量が少ないですが、他の古いサーバーと比較すると、負荷が低いため、それは予想通りです。 | Server Name| Mem_MB | Mem_GB | Server_RAM_GB | SQL_max_mem_GB| SQL_min_mem_GB | |------------|--------|--------------|---------------|---------------|----------------| | 4 | 41108 | 40.145263671 | 128 | 120 | 16 | | 5 | …

2
sys.dm_db_index_usage_statsの情報は信頼できるか
ドキュメントがない古いシステムのデータをアーカイブしています。私は幸運... テーブルが作成された日時、最後にアクセスされた日時などを確認したいのですが、このクエリで正しい答えが得られると信頼できますか、それとも最初に確認する必要があるパラメータがありますか?SQL Server 2008 R2: SELECT t.Name AS Tabelname, p.rows AS NoOfRows, MAX(us.last_user_lookup) AS LastUsed, t.create_date AS CreatedDate FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id LEFT JOIN --A lot of the tables did not …

3
同じ制約とインデックスで新しいテーブルを作成するにはどうすればよいですか?
主キー制約とそのテーブルに非クラスター化インデックスを含む新しいテーブルを作成しています。 キーとインデックスだけでなく、同じ構造と値を持つ別のテーブルを作成したいのですが。 create table Dummy (id integer ,name varchar(20),salary integer Constraint PK_Con_id primary key(id)) insert into Dummy values(11,'AAA',1000); insert into Dummy values(12,'BBB',2000); insert into Dummy values(13,'CCC',3000); insert into Dummy values(14,'DDD',4000); select * from Dummy; create nonclustered index IX_Name on Dummy(Name) 現在、Dmyテーブルを作成していますがDmy、SQL Server 2008 R2のキーと制約がテーブルに反映されません。 SELECT * INTO Dmy FROM Dummy

1
SQL Serverは、UPDATE中に新しい値と古い値の両方をどのように返しますか?
高い同時実行中に、意味のない結果を返すクエリの問題がありました-結果は、発行されるクエリのロジックに違反しています。問題の再現にはしばらく時間がかかりました。私は再現可能な問題を数握りのT-SQLにまで掘り下げました。 注:問題が発生しているライブシステムの部分は、5つのテーブル、4つのトリガー、2つのストアドプロシージャ、および2つのビューで構成されています。実際のシステムを簡略化して、投稿された質問をはるかに扱いやすいものにしています。物事が整理され、列が削除され、ストアドプロシージャがインラインになり、ビューが共通のテーブル式に変わり、列の値が変更されました。これは長い説明ですが、これはエラーを再現するものの、理解するのが難しい場合があることを示しています。なぜ何かがそのように構造化されているのか不思議に思わないでください。私はここで、このおもちゃモデルでエラー状態が再現可能に発生する理由を理解しようとしています。 /* The idea in this system is that people are able to take days off. We create a table to hold these *"allocations"*, and declare sample data that only **1** production operator is allowed to take time off: */ IF OBJECT_ID('Allocations') IS NOT NULL DROP TABLE Allocations CREATE …

1
SQL Serverでスキーマ間を一括で移行する方法は?
現在、複数のデータベースがありますが、それらを組み合わせて、スキーマを使用してドメインコンテキストを分離したいと考えています。 MS SQL Server 2008 R2では、スキーマのすべてのコンテンツを一括して別のスキーマに再配置するにはどうすればよいですか? たとえば、dboスキーマに作成したすべてのテーブル、ビュー、プロシージャ、インデックスなどは、スキーマに存在するようになりfooます。 編集:私はアーロンベルトランの素晴らしいコメントに基づいて明確にしたかったです。これはマルチテナンシーの状況ではありません。私たちの状況では、内部ツールプラグインが、テーブルをツールのデータベースにマージしなかった開発者によって分離して開発されました。

2
tempdbの場所が壊れて回復できない
間違いを犯し、tempdbのデータベース変更コマンドを誤って入力しました。 これでインスタンスは起動しなくなります。tempdbが見つからなかったため、-mを使用してシングルユーザーモードで起動できません。私は使ってみました: net start msqsqlserver /f /t3608 しかし、sqlcmdまたはを使用してインスタンスに実際に接続することはできませんssms。

2
クラスタ化インデックスの圧縮とテーブルの圧縮-それらは同じものですか?
テーブルのクラスター化インデックスに圧縮(ページまたは行)を設定した場合、それはテーブルに圧縮を設定することと同じですか? SQL Serverは両方を実行するためのオプションを提供しますが、それらは異なることを示唆していますが、クラスター化インデックスとテーブルは基本的に同じものであるという印象を受けました。クラスター化インデックスの動作のメンタルモデルは、クラスター化インデックスを圧縮するテーブルも圧縮する必要があります。

3
トレースフラグとオフにする必要がある理由と理由
SQLサーバーには非常に多くのトレースフラグがあります。それらのいくつかをオフにする必要がある理由。トレースフラグ8017をオフにする必要があることを確認した場所もあります。それで、どのトレースフラグをオフにする必要があるのか​​、なぜ知りたいのですか?

2
インスタントファイル初期化を有効にして作成されたSQL Serverデータベースファイルを「クリーンアップ」しますか?
SQL Serverでインスタントファイル初期化を有効にしているので、データベースファイルの「空の」部分は、割り当てられる前にゼロ化されません。私の理解では、これはファイルに「削除された」データが含まれる可能性があることを意味します。 そこで、データベースのコピー(おそらくバックアップファイル)を社外に送信したいと思います。しかし、潜在的に機密性の高い「削除された」データはすべてファイル内に残っています。次に、ファイルの未使用部分をゼロにします。 それは可能ですか?新しいデータベースを作成してすべてをコピーしたり、データベースのコピーをインスタントファイル初期化を有効にせずに別のサーバーに復元したり、ShrinkFileコマンドで積極的にデータベースファイルのほとんどまたはすべての未使用部分を削除したりできると思います、しかし手作業が少なく時間のかかる方法はありますか?理想的には、インスタントファイル初期化が有効になっていない場合と同じように、SQLにファイルのゼロ化を指示するコマンド。

1
SQL Serverの最大および最小メモリ構成
このユースケースでの最小メモリと最大メモリの正しい設定は何ですか? サーバーには、Windows Server 2008 R2 / SQL Server 2008 Standard Editionを実行する8GBのRAM、デュアルIntel Xeonプロセッサーが搭載されています。30GBから5GBのサイズのデータ​​ベースをいくつか実行しています。 当初、メモリ使用量はデフォルト設定に設定されていました(min = 0 max = 2,147,483,647)。これらの設定では、ほとんどのメモリ使用量がsqlservr.exeによって占められ、最終的にサーバーは1〜2日ごとに再起動する必要があります。最初は正常に実行されますが、1日以内に、主キーを使用してレコードを検索するなどの単純な操作でタイムアウトが開始されます。 min = 4,096とmax = 6,144を変更しました。これにより、メモリ使用量は1.4GBのみになります。ただし、現在は4つすべてのCPUが常に50〜60%のCPU使用率で実行されています。サーバーの方がはるかに安定していますが、タスクの実行には約3分の1時間がかかります。

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