データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A


1
SQL Serverのジョブ履歴が5日後に消える
これはばかげた質問のように感じますが、私の人生にとって、何が起こっているのかを追跡することはできません。私はいくつかのサーバーの管理を引き継いだばかりで、すべてのサーバーで、ジョブ履歴が5日間だけ保持されています。クリーンアップメンテナンスプランがありますが、5週間の保持が設定されています。 EXEC msdb.dbo.sp_syspolicy_purge_historyは毎日実行されていますが、履歴保持日数は0に設定されているため、とにかく何も実行されていません。 私がここで見逃している本当にシンプルなものがあるはずです。誰かが私を正しい方向に向けることができますか?


1
SQL Serverの継続時間測定は実際に何を測定しますか?
プロファイラートレースを実行するとき、クエリ期間は正確に何を測定しますか? データアクセス(SELECT)を実行するストアドプロシージャがあり、アプリケーションに結果を返すまでに平均で約30秒かかります。しかし、トレースを実行すると、平均所要時間は約8秒、最大所要時間は12秒、平均CPUは5.5秒です。 結果セットを返すのに、これほど長い時間がかかる原因は何ですか?大量のNETWORKIO待機を蓄積していません。結果セットは単純なテキストデータの約270行、合計約50列です。

2
見積もりと実際の実行計画の違い
SQL Serverを初めて使用するので、最初のクエリを調整したいと思います。 SQL Server 20xxで、「推定実行プランの表示」と「実際の実行プランを含める」の違いは何ですか?

2
SQL Server 2008ファイルストリームの最大行数
私たちは、使用しているファイルストリームにおける10.0.4000.0(X64)およびWindows Server 2008 - Microsoft SQL Serverの2008(SP2)を数百万のファイルを格納します。数百万のファイルがあるため、それらすべてが100個のファイルグループにグループ化され、次々とファイルグループに挿入されます。現在、各ファイルグループには約15Kのファイルがあり、間もなく20Kに増えると予想されています。したがって、ファイルグループが最適なパフォーマンスを実現するために必要な行の最大制限はありますか?または、単一のフォルダーに約20K未満のファイルを格納または格納するときに、最適なパフォーマンスを得るためにオペレーティングシステム側に最大値がありますか? 適切なリソースへの提案も非常に役立ちます。 私はそれを述べるmsdnブログへのリンクを持っています 4.特に8.3ファイル名の生成が有効になっている場合、NTFSパフォーマンスの低下が問題になる可能性があるため、FILESTREAMディレクトリコンテナーに個別に300,000を超えるファイルがないかどうかを確認します。 MSDNブログリンク ありがとう。

3
適切な多言語スキーマ、またはやりすぎですか?
UPDATE 2:私は実際にこれを使用してしまいましたが、2、3の調整後は素晴らしいです。実際のデザインと実際の動作に関する私の投稿は次のとおりです。http://tim.hithlonde.com/2013/lemon-schema-works/ 私はWebアプリを作成していますが、複数の言語をサポートしたいと考えています。この構造には2つのコンポーネントがあります。 ロケール( 'english'、 'Deutch'など)と用語を関連付け、ロゼッタストーンの接続用語と特定の言語の用語を使用します。 ページごとに用語をグループ化します。私は言いたくない、私がページで必要とするかもしれない30以上の用語を通して、term1、term2などを選択します。彼らが接続しているページで尋ねたいのですが。 これが私の提案するテーブル構造です(すべてのIDには非常に効率的なクエリを作成するために、ID間に関係/インデックスがあることに注意してください)。 * locale * id * value //English, Deutch, etc// * terms * id * value //In English// * page * id * value //Think add entry, menu// * page_group //group all terms to a page, for easy pulling// * id * page.id …

3
psql変数を連結する方法は?
2つのpsql(PostgreSQLクライアント)変数をどのように連結できますか?ディレクトリパス変数とファイル名変数を連結して絶対パスを生成したい。 私はこれを試しました: \set path '/tmp/' \set file 'foo' \echo :path:file しかし、psqlはパスとファイルの間にスペースを入れて出力します。 /tmp/ foo

3
行バージョンで並べ替えられたデータのフィルタリング
次の構造のSQLデータテーブルがあります。 CREATE TABLE Data( Id uniqueidentifier NOT NULL, Date datetime NOT NULL, Value decimal(20, 10) NULL, RV timestamp NOT NULL, CONSTRAINT PK_Data PRIMARY KEY CLUSTERED (Id, Date) ) 個別のIDの数は3000から50000の範囲です 。テーブルのサイズは10 億行を超えます。 1つのIDで、テーブルの5%までの数行をカバーできます。 このテーブルで最も実行されるクエリは次のとおりです。 SELECT Id, Date, Value, RV FROM Data WHERE Id = @Id AND Date Between @StartDate AND @StopDate …

1
InnoDB-ibdata1ファイルとib_logfile0でのディスク書き込みI / Oが高い
サーバー仕様:次の情報を持つVPS model name : Intel(R) Xeon(R) CPU E5649 @ 2.53GHz MemTotal: 2058776 kB MemFree: 244436 kB Invision Power ServicesのIP.Boardを実行しinnodb_file_per_tableています。データベースを使用 してリロードし、ibdata1のサイズを小さくしています。ただし、ibdata1サイズが小さくなったにもかかわらず、最近でもCPUとI / Oの使用率が高いという問題がありました。 私の検査から、それはのI / O使用率が高いことが原因であると思いますibdata1。以下は、pt-ioprofile -cell sizes(Percona ToolKitで)を使用して取得したデータです。基本的に、30秒間に収集された合計I / O量です。 # pt-ioprofile -cell sizes Fri Jul 20 10:22:23 ICT 2012 Tracing process ID 8581 total pread read pwrite fsync open …
8 mysql  innodb 

2
SQL Server 2008(またはR2)でWindows認証ログインを無効にできますか?
Windowsログインまたは混合モードを実行できますが、内部ログインのみを使用してすべてのWindowsログインをブロックするようにSQL Serverを構成できますか? 可能性のあるすべてのWindowsログインを追加し、それらを予防的(または対処的)手順として制限付き特権に設定する唯一のソリューションはありますか?

1
ストアドプロシージャに対するMySQLユーザー権限
簡単なストアドプロシージャを作成しました。 mysql> CREATE FUNCTION hello (s CHAR(20)) -> RETURNS CHAR(50) DETERMINISTIC -> RETURN CONCAT('Hello, ',s,'!'); Query OK, 0 rows affected, 1 warning (0.00 sec) しかし、実行に失敗しました: mysql> SELECT hello('world'); ERROR 1370 (42000): execute command denied to user ''@'localhost' for routine 'test.hello' ユーザー名が空の文字列である可能性はありますか?ユーザーを作成して権限を付与するにはどうすればよいですか?データベース内のすべてのエンティティに対するすべての権限をユーザーに付与できますか?

2
mysqldumpとUSEを使用したMySQLデータベースのインポートが遅いSOURCE
MySQL innoDBには約12のテーブルがあり、そのうちの1つに1100万のレコードがあります。 私はこのコマンドを使用して物事をバックアップしました: mysqldump -u [USERNAME] -p [DBNAME] | gzip > [/path_to_file/DBNAME].sql.gz そして、次のコマンドで新しいサーバーにインポートします。 USE [DBNAME]; SOURCE [/path_to_file/DBNAME].sql; ここに私が苦しんでいる痛みがあります(時間は各クエリで上がっています!): スピードアップするにはどうすればよいですか?mysqldumpコマンドに何か問題がありますか?


2
パラメータスニッフィングの回避策
私は過去に2つの方法を使用してパラメータースニッフィングの問題を回避しました: 1)使用WITH RECOMPILE 2)パラメータ値をローカル変数に再割り当てし、パラメータの代わりにそれらを使用します 私が理解していることから、これらの両方の最終結果は同じです-現在のクエリ/パラメーターに最適化された新しい実行プランが作成され、使用されます。 これに該当する場合、これら2つの方法の間に違いはありますか、それとも本質的に同じですか?どちらか一方がもう一方よりも望ましいですか?

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