データベース管理者

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

3
クライアントごとに1つのデータベースがどの時点で実行不可能になりますか?
私たちのシステムの1つでは、クライアントの機密データがあり、各クライアントのデータを個別のデータベースに保存します。そのシステムには約10〜15のクライアントがあります。 ただし、50〜100のクライアント、またはそれ以上のクライアントを持つ新しいシステムを開発しています。この例では、クライアントごとに1つのデータベースを持つことは(機密レコードと監査履歴を格納するために)実行不可能だと考えています。ただし、これが完全に正常かどうか、またはセキュリティを維持する別の方法があるかどうかはわかりません。 これについて何か考えはありますか?

2
Amazon RDS for MySQLとAmazon EC2インスタンスへのMySQLのインストール
職場では、すべてのWebサーバーをAmazon EC2でホストし、通常、Apache Webサーバーと同じボックスにインストールされたMySQLデータベースを使用し、それらと通信しましたlocalhost。現在、システムのいずれかのためにデータベースを独自のサーバーに移行する必要があります。Amazon RDSを使用するか、新しいAmazon EC2ボックスを起動してMySQLをインストールするという2つのソリューションから選択できます。 RDSは、EC2と同じ会社が提供する専用のデータベースサービスであり、明らかに優れたオプションである必要があるようです。ただし、2つのオプションの価格(http://aws.amazon.com/ec2/pricingおよびhttp://aws.amazon.com/rds/pricingを参照)を見ると、RDSサーバーのコストはほぼ同じ仕様のボックスでは、EC2サーバーの2倍。 バックアップを自分で処理でき、EC2がRDSと同じようにインスタンスをスケールアップできることを考えると、EC2の代わりにRDSを使用する理由はまったくわかりません。私が正しければ誰もRDSを使用しないので、おそらく何か大きなものを見逃しているようです。正確に何が欠けていますか?EC2インスタンスに独自のデータベースをインストールすることに対するRDSの利点は何ですか?
31 mysql  amazon-rds 

2
複数列のインデックスとパフォーマンス
複数列のインデックスを持つテーブルがあり、クエリのパフォーマンスを最大にするためのインデックスの適切な並べ替えについて疑問があります。 シナリオ: PostgreSQL 8.4、約100万行のテーブル 列c1の値には、約100の異なる値を指定できます。値は均等に分布していると想定できるため、可能な値ごとに約10000行あります。 列c2には1000個の異なる値を指定できます。可能な値ごとに1000行あります。 データを検索するとき、条件には常にこれら2つの列の値が含まれるため、テーブルにはc1とc2を組み合わせた複数列のインデックスがあります。フィルタリングに1列のみを使用するクエリがある場合、複数列インデックスの列を適切に順序付けることの重要性について読みました。これは、このシナリオには当てはまりません。 私の質問はこれです: フィルターの1つが非常に小さなデータセットを選択するという事実を考えると、最初のインデックスが最も選択的なインデックス(より小さなセットを許可するインデックス)である場合、パフォーマンスを改善できますか?参照記事のグラフィックを見るまで、この質問を考えたことはありませんでした。 複数列インデックスについての参照記事から抜粋した画像。 クエリは、フィルタリングに2つの列の値を使用します。フィルタリングに1列のみを使用するクエリはありません。それらはすべて次のとおりWHERE c1=@ParameterA AND c2=@ParameterBです。次のような条件もあります。WHERE c1 = "abc" AND c2 LIKE "ab%"


5
SQLでは、複合キーまたは複合キーですか?
SQL(コンピューティング/データベース)について: テーブルに2つ以上のフィールドがあり、それらが一緒になってレコードを一意に識別する場合、それらを呼び出す適切な方法は何ですか?複合キーまたは複合キー? 私は両方の使用をウェブで見たので、私は本当に確信がありません。

9
スコアテーブルでユーザーのランクを取得する
ハイスコ​​アを保存する非常にシンプルなMySQLテーブルがあります。次のようになります。 Id Name Score ここまでは順調ですね。質問は次のとおりです。ユーザーランクを取得するにはどうすればよいですか。たとえば、ユーザーがいるNameかId、またはランクを取得したい場合、すべての行がの降順で順序付けられScoreます。 例 Id Name Score 1 Ida 100 2 Boo 58 3 Lala 88 4 Bash 102 5 Assem 99 この場合、Assem彼は3番目に高いスコアを得たため、ランクは3になります。 クエリは、必要な(のみ)ランクを含む1つの行を返す必要があります。
31 mysql  rank 

3
忘れたPostgreSQL Windowsパスワード
今朝、Windows 7 ProfessionalデスクトップでPostgreSQLデータベースに接続しようとしています。 デフォルト値は「postgres」ですが、最初にインストールしたときに使用したパスワードを忘れてしまいました。 私はグーグルで検索し、パスワードのリセットに関連する投稿を見つけました。手順に従いましたが、最終結果は投稿で言及されたものとは少し異なります。私は使用しました— net user postgres postgres データベースのパスワードをリセットしますが、成功メッセージの代わりに私は得ています: 「システムエラー5が発生しました。アクセスが拒否されました。」 システムエラー。このエラーを回避してパスワードをリセットするにはどうすればよいですか?

1
SQL Server:ロック通信バッファーリソースでデッドロック
このデッドロックタイプの考えられる理由は何ですか?(一般にデッドロックではありません) 通信バッファリソースをロックする これは、システムのメモリが少なく、バッファカウントが制限を超えたことを示していますか? 詳細なエラー: トランザクション(プロセスID 59)は、別のプロセスとのロック通信バッファーリソースでデッドロックされ、デッドロックの犠牲者として選択されました。トランザクションを再実行します

1
外部キーのインデックスが必要
私はインデックス、プライマリキー、外部キーに苦労しています...そしてそれらすべてを持つ必要があります。 2つのテーブルがある場合、両方ともプライマリキーとして整数を持ちます。 最初のテーブルは、FKを介して2番目のテーブルの主キーを参照します。 両方のテーブルで、ID列に主キーインデックスがあります table1.ref_field2番目のテーブルのPKを参照するFK制約を作成しました(table2.id) にインデックスを追加しました table1.ref_field これは、これらのインデックス、プライマリキー、外部キーを整理する最良の方法ですか?


4
CPUクロック速度とCPUコア数の比較-より高いGHzか、それともSQL Serverのコアが多いですか?
VMware内のSQL Server 2016ノードの仮想クラスターに一連の物理サーバーのプロビジョニングを開始しています。Enterprise Editionライセンスを利用します。 6つのノードのセットアップを計画していますが、CPUクロック速度とCPUコアカウントに関して、物理サーバーをプロビジョニングする理想的な方法については少し議論があります。 これは、トランザクション量と他のソフトウェア固有の要因の中で保存されているデータベースの数に大きく依存することを知っていますが、推奨される一般的な経験則はありますか? たとえば、デュアル8コア、3.2 GHz物理サーバー(16コア)は、デュアル16コア、2.6 GHzサーバー(32コア)よりも優先されますか? このタイプのトピックをさらに掘り下げたホワイトペーパーに出会った人はいますか?

1
なぜこの述語を探すよりもスキャンが速いのですか?
予期しないものとして説明するクエリパフォーマンスの問題を再現することができました。内部に焦点を当てた答えを探しています。 私のマシンでは、次のクエリがクラスター化インデックススキャンを実行し、約6.8秒のCPU時間を消費します。 SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'10', N'11', N'12',N'13', N'14', N'15', N'16', N'17', N'18', N'19', N'20' ) AND (ID1 = N'FILLER TEXT' AND ID2 >= N'' OR (ID1 > N'FILLER TEXT')) ORDER BY ID1, …


6
SQL Serverと新しいTLS標準との互換性
主要なブラウザはSSL3.0およびTLS1.0を超えています。 PCIセキュリティ評議会は、これらのプロトコルが十分に強力な暗号化と見なされるためのサポート終了日を宣言しています。 新しい強力なプロトコルを使用するには、これらのプロトコルから離れる必要があります。Windowsサーバーでは、これらの古いプロトコルを簡単に無効にして、代わりにTLS1.1以上のみを提供できます。ただし、別の箇所で述べたように、Microsoft SQL Server 2008 R2とSQL Server 2012(少なくとも標準)は、これらの下位プロトコルが無効になっている場合、両方とも起動しません。ただし、MS SQL Serverのバージョンは増え続けています。SQL Server Standard、Business Intelligence、Enterprise、Express、Web、およびCompactエディションがあります。そしてもちろん、SQL Server 2008、2012、2014、および(プレリリース版)2016があります。 これらのエディションのどれがTLS1.1以上のプロトコルのみの使用をサポートしていますか、またはサポートしますか?

1
すべての値が36文字の場合、char vs varcharを使用すると、インデックスルックアップは著しく高速になりますか
すべてのテーブルのプライマリキーにハッシュベースの生成されたIDを使用するレガシースキーマ(免責事項!)があります(多数あります)。このようなIDの例は次のとおりです。 922475bb-ad93-43ee-9487-d2671b886479 このアプローチを変更する可能性はありませんが、インデックスアクセスのパフォーマンスは低下します。これが無数にある理由は別として、多くのテーブルのすべてのid値が正確に36文字の長さであるにもかかわらず、列タイプはvarchar(36)でなく 、最適ではないように思われることが1つありchar(36)ます。 固定長に列の型を変更することだろうchar(36)任意の提供の重要なインデックスページなどあたりのエントリの数が非常に少ないの増加を超えて、インデックスのパフォーマンス上の利点? つまり、固定長型を扱う場合、可変長型よりもpostgresの方がはるかに高速ですか? わずかなストレージの節約については言及しないでください-列に変更を加えるために必要な手術と比較しても問題にはなりません。

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