タグ付けされた質問 「best-practices」

ベストプラクティスは、他の方法で達成された方法やプロセスよりも優れていることが長期にわたって示されている方法とプロセスとして、一般的かつ非公式に認識されています。

3
ミリ秒での時間のデータベースへの保存
データベースへの「時間」の格納に関する簡単な質問です。ユーザーの実行時間を00:00:00:00(時間、分、秒、ミリ秒)の形式でログに記録しています。 私はもともとそれを保存するつもりでしたTIMEが、MySQLがこのタイプのミリ秒をサポートしていないことに気付きました。 ユーザーのストップウォッチから取得した実際の時間を保存します。ユーザーが実行して終了した時間ではありません(これは挿入される前に計算されます)。 使用するのに最適なフィールドタイプは何ですか?doubleまたはのどちらかを考えfloatていましたが、うまくいくかわかりませんか?

1
SQL ServerのFILL FACTORがデフォルトで0(100%)になるのはなぜですか?
FILL FACTOR、ページ、インデックス構造を理解しているため、100%FILL FACTORがまれなベストプラクティスである理由を理解しています。それでは、なぜデフォルトで0(または100%)になっているのですか?なぜ90または95ではないのですか? 行方不明のものはありますか?

5
スキーマの過剰使用/正しい使用?
尋ねたこれで質問をStackOverflowの、私は私が行っていることは正しいです/ベストプラクティスを疑問に思いました。 基本的に、私が作成するすべてのオブジェクトは、使用法を反映するスキーマ名を持つスキーマに入ります。たとえば、私にはスキーマAuditとAdmin(特に)があります。 これにより、にオブジェクトが残りませんdbo。これでいい?他に必要なことはありますか?

5
並列処理のベストプラクティス
並列処理の設定に関する一般的なベストプラクティスは何ですか?SQL Serverはデフォルトで0使用可能なすべてのプロセッサを使用することを知っていますが、どのような場合にこのデフォルトの動作を変更しますか? OLTPワークロードの場合は並列処理をオフにする(maxdopをに設定する1)必要があることをどこかで読んだことを覚えています(この記事を探す必要があります)。なぜあなたがこれをするのか、私には完全には理解できません。 maxdopをいつSQL Server(0)まで維持しますか?いつ並列処理(1)をオフにしますか?maxdopを特定の数のプロセッサに明示的に指定するのはいつですか? 並列性の原因は何ですか?

3
本番環境での特権を削減するが、仕事を過度に困難にしないための指針
Windows 2008 R2でSQL Server 2005および2008を実行します。 開発者の本番環境での特権を削減します。私もDBAと同じように、本番環境への権限を制限し、必要に応じて昇格させたいと考えています。 私の主な目標は、愚かな過ちを排除することです-DBA によって行われるため、開発者はせいぜい本番環境で読み取りアクセスしかできません。私たちは間違いを犯さないスーパーヒーローであるように行動するのが好きですが、常に制作権を持っているわけではないのは理にかなっており、一部の人が推奨するベストプラクティスです。 最善のアプローチは何ですか?日常的に、およびインストール中に最も苦痛を感じないものは何ですか? 現在、すべてのサーバーとデータベースに対する権限を持つDBAのWindowsグループがあります。 OSやリモートログインの権限を下げることにも興味がありますが、DBの権限に最も関心があります。 古いトレースのSA権限を削除する前に、saとしてトレースを実行し、場合によっては所有権をクリーンアップするために、昇格された特権が必要になると思います。他にどのような問題が予想されますか? あなたのアドバイスとあなたの経験を共有してくれてありがとう!

3
開発者はLocalDBと「開発」インスタンスの使用を許可する必要がありますか?
以前にここに投稿された「開発者は本番データベースにクエリを実行できるようにする必要がありますか?」という質問の筋によく似ています。 多くの企業は、開発者が開発マシンにSQL Server Expressなどをインストールするのを防ぎ、代わりに集中型開発SQL Serverの使用を促進しています。 具体的には、次のことを確実にするために行われます。 開発サーバーとプロダクション間のパッチレベルの一貫性 上記のパッチを証明および検証する機能 データセキュリティ; 開発サーバー上のデータのみが開発に使用されます 回復性; データは回復可能であり、まだバックアップされています 本番環境に移行すると問題が発生する可能性がある照合順序の違い 私にとって、これらの引数はすべておそらく無効ですが、パッチの引数は例外です。しかし、ローカルマシン上のデータベースがテストではなく開発アクティビティのみに使用されている場合、アプリケーションがテスト/ UATなどを介して本番環境に移行すると、パッチが適用されたことが証明されます。 照合順序は、データベースにとって問題であるかのように、有効な理由ではないようです。作成時に設定する必要があります。私が知る限り、SharePointとSCCMのみがこの問題を抱えています;) ここで、それが開発専用であり、データベースが本番環境に「移動」されず、唯一の移動は次のようになると想定します。 本番環境へのデプロイ用に生成されるデータベースを作成したスクリプト 「本番」サードパーティシステムからのバックアップは、検証と開発に適した場所で復元および切り捨てられます 誰でも何か問題を見ることができますか?何か不足していますか? 最大の懸念の1つは、ローカルのdbインスタンスが古くなってしまうことですが、これはソフトウェア管理の問題であり、DBAのIMOではありません。

3
MySQLで西暦1000年より前の日付を処理する最良の方法は?
1000 ADより前に拡張するレコードのデータベースを作成していますが、MySQLのDateおよびDateTimeフィールドは1000から始まる日付のみをサポートしています。 bigint型を使用してUnixタイムスタンプを使用して1970年1月1日の前/後の秒数をカウントする方法、またはより広い日付範囲をサポートするデータベースソフトウェアに切り替える方法よりも便利な方法はありますか?

2
予測レビューのためのデータベース設計
私はリレーショナルデータベースについてもっと学びたいと思っており、実際に何かをするために学ぶより良い方法はないと思いました。私は個人的な予算の会計と予測を見る個人的な試みをすることにしました。これまでにいくつかの調査を行ったので、現在のデータベースの設計と正規化について洞察を得たいと思います。 現在のデータベース設計に関するあなたの考えと提案は何ですか?私はあなたが私を助けるのをよりよく助けるためにいくつかの情報を以下に含めました:) 開示:これは個人的なプロジェクトです。宿題や仕事のためではありません。 ビジネスの事実 銀行ACCOUNTは多くのことができますENTRIES はENTRY、CREDITまたはDEBIT アンはENTRY、それは上の貸方かに引き落とされた日付を持っています アンはENTRYシングルを持っていますPAYEE ENTRYAに関連付けることができますBUDGET CATEGORY A CREDITはENTRY のCREDIT説明がありますENTRY A CREDITは将来的にスケジュールできます A CREDITは頻度や量で再発する可能性があります A DEBITはENTRY のDEBIT説明がありますENTRY A DEBITは将来的にスケジュールできます A DEBITは頻度や量で再発する可能性があります A PAYEEには名前があります AにBUDGETは多くのBUDGET CATEGORIES A BUDGETは単一のカレンダーにのみ関連付けることができます A BUDGET CATEGORYは多くのENTRIES A BUDGET CATEGORYには名前があります A BUDGET CATEGORYにはBUDGET金額があります A FORECASTには開始日があります A FORECASTには終了日があります A FORECASTには期首残高があります AにFORECASTは多くのFORECASTED DAYS A FORECASTは1つFORECASTED BUDGET …

3
「y」日付の「x」製品の価格を取得するために、データベースのすべての価格変更を追跡するにはどうすればよいですか
特定の日付で製品価格のデータベースを照会できるように、製品価格の変化を追跡する必要があります。この情報は、履歴監査を計算するシステムで使用されるため、購入日に基づいて、正しい製品の正しい価格を返す必要があります。 私はデータベースの構築にpostgresを使用したいと思います。 データベースの設計が必要ですが、あらゆるベストプラクティスの提案も歓迎します。

2
別々のデータベース間の関係は悪い習慣ですか?
複数のデータベースを持つクライアントを使用しています。レベルデータベース(アプリケーション固有のDB)masterからの関係を持ついくつかのレベルデータベースがありますinstance。fromからinstancetoへの関係masterは、のテーブルへの主キーを表す整数値ですmaster。のビューとストアドプロシージャは、これらのストアドキーを介してinstancesデータをロードするように設定masterされています。 明らかに、実際の参照整合性はありませんが、それは悪い習慣なのinstanceでしょうか、それともデータベースの読み取り専用テーブルにデータを常駐させるべきなのでしょうか。

3
SUM()を2回使用するのは最適ではありませんか?
句で使用する場合(または派生テーブルを使用する場合)SUM、2回記述する必要があることはわかっていHAVINGます。 SELECT id, sum(hours) AS totalhours FROM mytable GROUP BY id HAVING sum(hours) > 50; 私の質問は、これが最適ではないかどうかです。プログラマーとして、このクエリは、DBが合計を2回計算するように見えます。そうですか、それともDBエンジンが行う最適化に依存すべきですか? 更新:比較可能なクエリの説明: postgres=> explain select sum(counttodo) from orderline group by orderlineid having sum(counttodo) > 100; QUERY PLAN -------------------------------------------------------------------- HashAggregate (cost=1.31..1.54 rows=18 width=8) Filter: (sum(counttodo) > 100) -> Seq Scan on orderline (cost=0.00..1.18 rows=18 width=8) (3 …

4
データベース設計-共有タグ付きのさまざまなオブジェクト
私の経歴は、データベース管理ではなく、Webプログラミングに詳しいので、ここで間違った用語を使用している場合は訂正してください。コーディングするアプリケーションのデータベースを設計する最良の方法を見つけようとしています。 状況:レポートが1つの表にあり、推奨事項が別の表にあります。各レポートには多くの推奨事項があります。キーワード用の別のテーブルもあります(タグ付けを実装するため)。ただし、キーワードを検索すると結果としてレポートと推奨事項が表示されるように、レポートと推奨事項の両方に適用されるキーワードのセットを1つだけ用意したいと思います。 これが私が始めた構造です: Reports ---------- ReportID ReportName Recommendations ---------- RecommendationID RecommendationName ReportID (foreign key) Keywords ---------- KeywordID KeywordName ObjectKeywords ---------- KeywordID (foreign key) ReportID (foreign key) RecommendationID (foreign key) 本能的には、これは最適ではないようで、タグ付け可能なオブジェクトを共通の親から継承し、そのコメントの親にタグを付けると、次のような構造になります。 BaseObjects ---------- ObjectID (primary key) ObjectType Reports ---------- ObjectID_Report (foreign key) ReportName Recommendations ---------- ObjectID_Recommendation (foreign key) RecommendationName ObjectID_Report (foreign …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.