データベース管理者

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

4
XMLデータ型を使用する場合
プロジェクトでデータベースを作成する責任があります。まれに値を持つフィールド(10,000レコードごとに1つ)があり、これをデータベースに格納する最適な方法を探しています。 私が見る限り、3つのオプションがあります: 余分な値ごとにテーブルに列を追加します 元のテーブルを参照し、値を保存する必要がある場所にのみレコードを持つリンクテーブルを追加します。 元のテーブルのXMLデータ型を使用し、すべての値をこれに保存します。 私が検討していない他のオプションはありますか? 私は各方法の長所と短所を解決しようとしています。私が知る限り、1が最も簡単で、2が最小のスペースで済みますが、3のリソースを見つけるのに苦労しています。

3
C#VS SSMSから同じリクエストを実行すると、異なる実行時間が与えられます
このようなリクエストがあります SELECT [EstimateId], [CreationUserId], [EstimateStatusValueId], [LanguageId], [LocationId], [EstimatorUserId], [FilterUnitSystemTypeId], [EstimateNumber], [RevisionNumber], [CreationDate], [ModificationDate], [ProjectDescription], [IsBsdq], [ClosingDate], [ClosingTime], [ClosingUpdatedOn], [DeadLineDate], [IsReceived], [Inclusion], [Exclusion], [Misc], [Note], [WorkDeadLines], [Comments], [Validity], [PlansLocation], [PlansReceivedFrom], [Price] FROM [Estimate].[Estimates] ORDER BY [ClosingDate] ASC, [ClosingTime] ASC SSMSでこのクエリを実行すると、953msの実行時間が得られますが、C#でLinqクエリからこのクエリを実行すると、1813msの実行時間が得られます。 Linqクエリは「.Net SqlClient Data Provider」を使用し、EntityFramework(EDMXファイル)に対して発行されます。これは問題になる可能性がありますか? 同じデータベースの異なるコンテキストから実行されるリクエストの実行時間に大きな違いがある理由を誰もが知っていますか? 両方の要求のすべての実行計画を検証し、それぞれのクエリを満たすために同じインデックスを使用します。 C#リクエストの実行計画を確認するには、SQLプロファイラーを使用してShow Plan XMLイベントをトラップし、それをSSMSの1つと比較します。両方とも同じです。

3
インデックスはクエリのパフォーマンスにどのように影響しますか?
明らかに、いくつかの異なるインデックスを保持することは、挿入および削除のパフォーマンスに悪影響を及ぼします。クエリのパフォーマンスはどうですか:テーブルに多くのインデックスを保持するのは理にかなっていますか?インデックスを追加するとクエリのパフォーマンスが向上しますか(もちろん、インデックスを使用するクエリの場合)、取得するためにすべてのインデックスを調べる必要があるため、インデックスが多すぎるとクエリのパフォーマンスが低下する可能性があります結果? テーブルに異なるインデックスがある場合:それらはすべて考慮されるのか、オプティマイザーの観点からのみ最適なのか?Oracleは多次元インデックスを実装していますか?

2
Postgresql 8.3:クエリごとのリソース消費を制限する
私が使用しているPostgreSQLの8.3 + のPostGIS 1.3で地理空間データを格納するためのUbuntu 8.04ハーディ。 この特定のバージョンのPostGISには、buffer()非常に複雑なセグメントで計算するときにバグがあり、マシン全体がスタックするまでクエリがますます多くのメモリを消費します。 私はできるPostgreSQLメカニズムを探しています: 特定のクエリで使用されるメモリ消費(およびおそらく他のリソース)を制限します。 実行時間が特定のしきい値を超えるクエリを自動的に停止します。 何か案は?

3
行ロック競合のトレース、デバッグ、修正
遅くなって、私は多くの行ロックの競合に直面しました。競合するテーブルは特定のテーブルのようです。 これは一般的に何が起こるかです- 開発者1は、Oracle Formsのフロントエンド画面からトランザクションを開始します 開発者2は、同じ画面を使用して別のセッションから別のトランザクションを開始します 〜5分で、フロントエンドが応答しなくなったようです。セッションをチェックすると、行ロックの競合が示されます。誰もが投げる「解決策」は、セッションを終了することです:/ データベース開発者として 行ロックの競合を排除するために何ができますか? ストアドプロシージャのどの行がこれらの行ロックの競合を引き起こしているかを調べることは可能でしょうか このようなコーディングの問題を軽減/回避/排除するための一般的なガイドラインは何でしょうか? この質問が無制限で不十分な情報であると感じた場合は、気軽に編集してください。 問題のテーブルには多くの挿入と更新が行われています。最も忙しいテーブルの1つだと思います。SPはかなり複雑です-簡単にするために-さまざまなテーブルからデータをフェッチし、それを作業テーブルに取り込みます。作業テーブルで多くの算術演算が行われ、作業テーブルの結果が問題のテーブルに挿入/更新されます。 データベースのバージョンは、Oracle Database 10g Enterprise Editionリリース10.2.0.1.0-64ビットです。ロジックのフローは両方のセッションで同じ順序で実行され、トランザクションは長時間(または少なくともそうだと思われます)開いたままにならず、トランザクションのアクティブな実行中にロックが発生します。 更新:テーブルの行数は予想よりも大きく、約310万行です。また、セッションをトレースした後、このテーブルに対するいくつかの更新ステートメントがインデックスを使用していないことがわかりました。なぜそうなのか-よくわかりません。where句で参照される列にはインデックスが付けられます。現在、インデックスを再構築しています。

4
WindowsでのデフォルトのMySQLテーブルのインストール(mysql_install_db)
Linuxでは、デフォルトのMySQL許可テーブルをmysql_install_dbスクリプトで作成できますが、Windowsでは機能しません。 デフォルトの許可テーブルをWindowsにインストールするにはどうすればよいですか? (いいえ、Googleの結果がWindowsに自動的にインストールされる方法でいっぱいになっているという応答を探しているわけではありません。ZIPパッケージではなくインストーラー配布の場合のみです。 MySQLがインストールされており、データディレクトリが破損しているか、置き換えられているなど。


3
属性の最大数が不明なエンティティを実装する方法は?
私は野球シミュレーションプログラムを設計していますが、boxscoreスキーマの設計で問題に遭遇しました。私が抱えている問題は、各イニングで得点されたランの数を追跡したいということです。実際のプログラムでこれを行う方法は、演奏されるイニングごとに大きくなる動的配列を使用することです。 野球の試合に不慣れな人にとっては、9回のイニングの終わりに試合がまだ結ばれていない限り、試合は通常9イニングの長さです。したがって、野球の試合の長さは不定です。つまり、各イニングの得点に9列しか持たないようにデータベースを設計することはできません(厳密には18(9イニング* 2チーム)。データベースに保存する前にBase64としてエンコードしますが、これが使用するのに適した手法であるかどうかはわかりません。 重要な場合、私が開発しているデータベースはPostgreSQLです。 提案は大歓迎です!ありがとう!

2
SQL Server 2008-同じ物理マシンとサーバーインスタンスでのクロスデータベースパフォーマンス
同じ物理マシン上の別のDBを介して選択を実行すると、パフォーマンスが低下しますか?したがって、同じSQL 2008インスタンス内で実行されている同じ物理マシン上に2つのデータベースがあります。 たとえば、SomStoreProc on_this_dbで、the_other_db.dbo.someTableからSELECT someFieldsを実行します。 これまでのところ、私がインターネットで読んだことから、ほとんどの人はNOを示しているようです。

2
データファイルとともにOracleアーカイブログをバックアップする必要があるのはなぜですか
Oracle®Database Backup and Recovery Basics 10g Release 2(10.2)によると アーカイブREDOログは、メディアリカバリを成功させるための鍵です。定期的にバックアップしてください。 しかし、なぜアーカイブログのバックアップが非常に重要なのかと思います。通常のRMANの完全および増分データファイルバックアップを使用するだけで、ポイントインタイムリカバリを実行できますか。
12 oracle  backup  rman 


2
SQL Server 2005のNullable列の一意の制約
私が取り組んでいるこの1つのプロジェクトでは、特定のフィールドを一意に設定する必要があります(問題ではありません!)が、フィールドがnullの場合、制約を無視する必要があります。Sql Server 2008では、以下に示すようにフィルター選択されたインデックスを使用しますが、これは以前のバージョンのSQLでは使用できません! CREATE UNIQUE NONCLUSTERED INDEX User_UserName_IUC ON [User] (pinNr) WHERE UserName IS NOT NULL しかし、これはSQL Server 2005で利用できるとは思いません。実際、このブログ投稿では、トリガーを使用して一意性を確認する回避策があることを示しています。誰もこれの例を持っていますか?または多分代替案? 残念ながら、SQl Server 2008へのアップグレードは、この特定のクライアントのオプションではありません!!

3
128ビット整数のMySQLデータ型
私は128ビットの符号なし整数をMySQLに保存する必要があり、そのような大きな数を保存するのに最適なデータ型は何だろうと思っていました。 現在、私は使用してbinary(16)いますが、それは多くの変換関数を伴いますpack(/huge number in hex .../)。 128ビットの符号なし整数を格納するのに最適なデータ型はありますか?
12 mysql  datatypes 

2
ドキュメント指向データベースについて学ぶための良いリソースは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 2ヶ月前に閉店。 NoSQLデータベースについて学ぶことに興味があり、ドキュメント指向のデータベースから始めることにしました。このタイプのデータベースの概念と優れた設計を学ぶための優れたリソースは何ですか?

3
Microsoft SQL Server内から古いクエリプランをすべてクリアするにはどうすればよいですか?
Microsoft SQLデータベースを使用する既製のアプリケーションがあります。このアプリケーション内で、各レポートのさまざまな選択基準を選択します。その後、このアプリケーションはこれらのレポートを実行します。 クエリプランに問題があると思います。毎日実行する最初のレポートは、非常に高速で7分実行されます。最初のレポートの後に実行されるレポートは1時間以上かかります。 毎晩、SQL ServerエージェントとSQL Serverを停止および起動するスケジュールされたタスクを実行します。このSQL Serverの1つのインスタンス内には、約25の他のデータベースがあります。他のデータベースにはパフォーマンスの問題はありません。先ほど述べた市販製品のみです。 SQL Serverが現在メモリに保持しているすべてのクエリプランをクリアする方法はありますか? 同じサーバー上の他のデータベースに依存する30人程度のユーザーに影響を与えずにこれを行うにはどうすればよいですか?

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