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

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

1
SQL Server DBAはWindows Serverについて何を知る必要がありますか?
前の質問と同様に、DBAはSSASについて何を知る必要がありますか?、本当に素晴らしい答えを生成しました(ありがとう、@ ConcernedOfTunbridgeWells!)、私は今、似たような質問をします: SQL Server DBAがWindows Serverを効率的に管理し、舞台裏で何が起こっているのか、そしてどの程度SQL Serverが実行されている基本OSを知ることが重要かを理解するために、Windows Serverについて知る必要があるもの優れたDBAになるには? 個々の機能、書籍、経験から、あなたはそれに名前を付けることができます!

4
過去12時間の1時間ごとに1つのレコードを生成する簡単な方法を知っていますか?
過去12時間のイベント数を1時間ごとにグループ化したレポートがあります。簡単に聞こえますが、私が苦労しているのは、ギャップをカバーするレコードを含める方法です。 以下にテーブルの例を示します。 Event ( EventTime datetime, EventType int ) データは次のようになります。 '2012-03-08 08:00:04', 1 '2012-03-08 09:10:00', 2 '2012-03-08 09:11:04', 2 '2012-03-08 09:10:09', 1 '2012-03-08 10:00:17', 4 '2012-03-08 11:00:04', 1 その時間中にイベントがあるかどうかに関係なく、過去12時間ごとに1つのレコードを持つ結果セットを作成する必要があります。 現在の時刻が「2012-03-08 11:00:00」であると仮定すると、レポートには次のように表示されます: Hour EventCount ---- ---------- 23 0 0 0 1 0 2 0 3 0 4 0 5 0 6 …


4
SQL Serverエージェント経由でスケジュールされたジョブからバッチファイルを実行する方法
SQL Server 2008 R2でSQL Serverエージェントジョブ内から(Windows)バッチファイルを実行しようとしています。ジョブステップで、新しいステップを作成し、そのタイプを「オペレーティングシステム(CmdExec)」に設定しました。最初に、「コマンド」フィールドにバッチファイル名のみを入力しようとしました。ファイルが見つからないというエラーが発生します。 次に試しました:cmd.exe c:\ test.bat これは開始されますが、決して完了しません(実際に動作しているようには見えません)。 バッチファイル名を引用符で囲みました:cmd.exe "C:\ test.bat"ですが、それでも違いはありません。 これを機能させるための魔法の組み合わせは何ですか?


5
コードブランチ間で共有されるデータベーススキーマを処理する効率的な方法は何ですか?
複数のブランチを持つプロジェクトで作業します。各ブランチは最終的にメインブランチにマージされ、新しい機能を開発するために本質的に分離されます。 MS SQL Serverであるデータベースには共有スキーマがありますが、各ブランチは進行に応じてスキーマに変更を加えます。 私の主な質問は、メインブランチから派生ブランチまでのスキーマの共有に対処する良い方法です。メインブランチに加えられた変更は、派生の新しい変更を踏むことなく、派生ブランチに簡単にマージされます。ブランチ?


9
SQL Serverのポートを変更することは本当に安全ですか?
SQL Serverのデフォルトポートは1433です。管理者から、「セキュリティ上の理由で」ポートを変更する必要があると言われました。 ポートを変更する方が本当に安全ですか?サーバーがファイアウォールの内側にあり、特定の範囲のIPからの接続のみを許可している場合、それだけでは不十分ですか?
12 sql-server 

6
同一の(?)SQL Server 2005マシン。クエリは一方で2秒、他方で15分かかります
環境: SQL Server 2005を実行している2つの32ビットWindows Server 2003 R2マシンがあります。ハードウェア構成は、Xeon 5160 CPU、4GB RAM、13GB RAID0を備えた同一サーバーです。AWEおよび/ 3GBフラグは有効ではありません。 サーバーは、事前に定義されたインストールチェックリストを使用して並列にセットアップされ、インストールされたすべてのソフトウェアは両方のマシンで同じです。 確認する必要があるSQLサーバーのインストール設定とパッチレベルはすべて同じです。1つの違いは、TEMPDBが高速マシンで400MB、低速マシンで1.2GBであることです。ただし、どちらの場合も、TEMPDBの割り当ては行われていません。 問題: 一方では2秒、もう一方では15分で実行されるストアドプロシージャがあります。追加の15分間、ディスクアクティビティはほとんどないか、メモリ使用量は変化しませんが、1つのCPUコアが常に100%に固定されます。 この動作は、データベースが一方からバックアップされ、他方に復元された場合でも持続します。 これはストアドプロシージャであるため、アクティビティモニタとプロファイラは、ストアドプロシージャのどこでこの高CPUアクティビティが発生しているかについての詳細を表示しません。 質問: 他に何を見るべきでしょうか? ファローアップ: スローは、次のカーソル定義のFETCH NEXTステートメントで発生します。 DECLARE C CURSOR FOR SELECT X, Y FROM dbo.A WHERE X NOT IN (SELECT X FROM dbo.B) AND Z <=0 ... <snip> ... FETCH NEXT FROM C …

3
スナップショットレプリケーションの保持
SQL Server 2008運用サーバーでスナップショットレプリケーションを設定しましたが、スナップショットフォルダーに1年前にまで遡るスナップショットがあることに気付きました。これらのスナップショットの保持を変更するにはどうすればよいですか?具体的には、スナップショットを5日間保持したいと思います。 これが私が見ているフォルダのスクリーンショットです:

1
テストデータ用の大きな文字列の生成
ここで質問のための汎用テストデータを含むいくつかの大きな文字列を作成しようとしていました。文字列を乗算する方法を知っていたようです。ただし、構文を思い出せなくなりました。 私は次のようなものを探しています: SELECT 'A' + ('a' * 1000) + 'ha!' 「Aaaaaaaaaaaaaaaha!」を思い付くために (もちろん、もっと長いです。) T-SQLでこれは可能ですか?(または、他の言語を考えていますか?)また、大きな文字列を生成する他の技術はありますか?
12 sql-server  t-sql 

1
SQL Serverの計算列での奇妙な動作
私の70-433試験の本を読んでいる間、私は機能していないと思われる何かを考えましたが、それでも機能すると信じています。パッセージは次のようなものを読みました: また、列はPERSISTEDとしてマークする必要があります。つまり、SQL Serverは、クエリで参照されるたびに計算するのではなく、計算列の式の結果をデータ行に物理的に格納します。 これから、2つのことを理解できます。 非持続計算列は、それがクエリで参照されるたびに計算されます 計算列には何も格納されないため、列にはインデックスを作成できないと想定しています。 読んだ後、以前のプロジェクトで非永続列にインデックスを作成できたので、これは少し奇妙だと思いました。 永続化されていないもののインデックスを作成するにはどうすればよいですか?これは長期的に有害です? これを証明するために、次のSQLステートメントを実行しました。 CREATE TABLE testTable ( ID INT IDENTITY(1,1) PRIMARY KEY, telephone VARCHAR(14), c_areaCode AS (SUBSTRING(telephone,0,5)), cp_areaCode AS (SUBSTRING(telephone,0,5)) PERSISTED ) INSERT INTO testTable VALUES('09823 000000'); INSERT INTO testTable VALUES('09824 000000'); INSERT INTO testTable VALUES('09825 000000'); CREATE NONCLUSTERED INDEX IX_NotPersisted ON testTable(c_areaCode); CREATE …
12 sql-server 

2
SQL Server:大規模ページ割り当てのチューニングオプションを使用した人はいますか?
誰でもを使用するチューニングオプションを使用していTF834 large page allocationsますか。私はそれに関するMS記事を読んでいて、誰かがそれを使ってパフォーマンスの向上を見たのではないかと思っていました。注意すべき点、ヒント、落とし穴はありますか? サーバーは、Windows 2008 64ビット、128 GB RAM、4 CPU 8コアのハイパースレッド(合計64コア)SQL2005サーバーです。現在実行されているデフォルトのSQLインストールを使用するだけでなく、サーバーの仕様をより良く使用するようにサーバーを調整したいと考えています。追加のヒントは歓迎します。

3
クエリパフォーマンスチューニング
クエリ/ストアドプロシージャ/関数の作成が完了したら、パフォーマンスパラメータをすばやく取得する最も有益な方法は何ですか?クエリを実行し、実際の実行計画を表示しますか?もしそうなら、あなたが探しているものは何ですか?明らかにテーブル/インデックススキャンはビットヒットですが、他には何がありますか?

2
インデックスに関連するNOTロジックの使用
Microsoftのデータベース開発試験70-433に関する本:Microsoft SQL Server 2008 Database Developmentによると: NOTロジックではなく先頭のワイルドカード文字のいずれも、クエリオプティマイザーがインデックスを使用して検索を最適化することを許可しません。最適なパフォーマンスを得るには、NOTキーワードと先頭のワイルドカード記号を使用しないでください。 することを取った私はそうNOT IN、NOT EXISTSなど さて、このSOの質問に関して、@ GBNが選んだ解決策は上記の声明に違反すると考えました。 どうやら、そうではありません。 だから私の質問は:なぜですか?

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