データベース管理者

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

2
データベースの同期およびソフト削除シナリオでの廃棄テーブルと削除済みフラグ
クライアントの同期の必要性のために、削除されたアイテムを追跡する必要があります。 一般に、トゥームストーンテーブルと、サーバーデータベースから行が削除されたときを追跡するトリガーを追加する方が基本ですか?元のテーブルを削除し、通常はビット型の列で削除済みとしてフラグを立てて、行が削除されたことと、削除が発生したときに追跡する別の列を示しますか?
17 delete 

1
空の文字列: ''または ''が ''と等しいか?
誰が理由を説明できる select case when '' = ' ' then 1 else 0 end, LEN(''), LEN(' '), DATALENGTH(''), DATALENGTH(' '); 利回り ----------- ----------- ----------- ----------- ----------- 1 0 0 0 1 これの面白い結果は create table test ( val varchar(10) ); insert into test values( '' ); update test set val = ' …

1
1行のテーブルの用語?
1の基数との関係を表す特定の用語はありますか? 特に、RDBMSの「特別な」1行テーブル、たとえばDUAL(Oracle)、SYSIBM.SYSDUMMY1(DB2、Derby)、RDB$DATABASE(Interbase、Firebird)について考えています。

1
MySQL Master / Slaveレプリケーションでは、スレーブに書き込むとどうなりますか?
いくつかの質問 スレーブに影響を与える可能性のあるマスターのテーブルへの挿入/更新/削除があるまで、スレーブエントリは残りますか? そうでない場合は、スレーブがマスターと同期していることをどのように確認しますか(スレーブエントリを削除するか、そのエントリをマスターに手動でコピーします)? 最も重要なのは、テーブルが同期していないことをどのように検出するかです。

4
トリガーからストアドプロシージャを呼び出す
次の構文を使用してmysqlにストアドプロシージャを作成しました。 DROP PROCEDURE IF EXISTS `sp-set_comment_count`; DELIMITER $$ CREATE PROCEDURE `sp_set-comment_count` (IN _id INT) BEGIN -- AC - AllCount DECLARE AC INT DEFAULT 0; SELECT COUNT(*) AS ac INTO AC FROM usergroups AS ug LEFT JOIN usergroup_comments AS ugm ON ugm.`gid` = ug.`id` LEFT JOIN mediagallery AS dm ON ugm.mid …

2
複合キーの最初の部分としてDATETIMEを持つ主キーインデックスは使用されません
PRIMARY KEYの最初の部分として、DATETIME(または日付)のインデックス付けに問題があります。 MySQL 5.5を使用します これが私の2つのテーブルです。 -- This is my standard table with dateDim as a dateTime CREATE TABLE `stats` ( `dateDim` datetime NOT NULL, `accountDim` mediumint(8) unsigned NOT NULL, `execCodeDim` smallint(5) unsigned NOT NULL, `operationTypeDim` tinyint(3) unsigned NOT NULL, `junkDim` tinyint(3) unsigned NOT NULL, `ipCountryDim` smallint(5) unsigned NOT NULL, `count` …

4
SQL大規模テーブルの設計
SQL Server 2008のテーブル設計に関する一般的な質問があります。現在、600 GBを超えるテーブルがあり、1日に約3 GBで成長しています。このテーブルには適切な指標がありますが、クエリを実行するときやそのサイズのために、大きなハングアップになりつつあります。問題は、年と月でテーブルを複数のテーブルに分割するか(これにより、他の部門が大規模なデータセットを分割する方法に適合します)、またはSQL Serverに組み込まれたパーティションを活用する必要があります。パーティショニングを使用すると、コードの変更が少なくて済むようです。パーティション分割時に読んだものから、まだ1つのテーブルを照会するだけで、サーバーはデータの取得方法を処理します。複数のテーブルルートを使用する場合、複数のテーブルからデータをプルする必要があります。

3
MyISAMとInnoDBのベスト
InnoDBで、同時実行パフォーマンスの利点を得ながら、RAMの制限のためにクラスター化インデックスの代わりにMyISAMと同じインデックスを使用することは可能ですか?

5
高度な同時書き込み、高書き込みDBのインフラストラクチャ
私の要件は次のとおりです。 3000接続 70-85%の書き込みと読み取り 現在、700の接続でHigh-CPU、エクストララージインスタンスを最大化しています。8コアすべてが最大化されています。メモリが十分であるため、同時接続の数だと思います。書き込み自体は非常に単純です(検証によって処理が遅くなります)。3000に拡張するには、現在のオプションである複数のサーバーに移動する必要があります。 MySQLシャーディング MongoDBクラスター カサンドラ HadoopとMySQL(Hadoopキャッシュ、MySQLへの単一ダンプ) MongoDBとMySQL(Hadoopの代わりに、mongoをキャッシュに使用します) この数の接続を処理するには、いくつかの質問があります。 MySQL Shardingは同時接続を処理できますか? 単一のマスターがこれらの同時接続を処理できますか、またはMongoのようなマルチヘッドがより良いオプションですか? 問題をうまく説明していない場合は謝罪します。質問してください。


6
ビジネスインテリジェンスの一例を教えてください。
私は、ビジネスインテリジェンスが何であるかを本当に理解していません。会社のDBから始める場合、BI担当者は何をしますか?ウェブ上でたくさんの資料を見つけましたが、通常は少し複雑すぎます。私は、BIが何であるか、そしてBI担当者が私の組織にとって価値のあるものをどのように生成するかを理解できるようにする簡単な例を求めています。

4
並列プランの不正確な「実際の」行カウント
これは純粋にアカデミックな質問であり、問​​題を引き起こしていないので、その振る舞いの説明を聞きたいだけです。 Itzik Ben-Ganのクロス結合CTE集計表の標準的な問題を取り上げます。 USE [master] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[TallyTable] ( @N INT ) RETURNS TABLE WITH SCHEMABINDING AS RETURN ( WITH E1(N) AS ( SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 …
17 sql-server 

1
PostgreSQLはWAL対応バックアップの途中でチェックポイントをどのように処理しますか?
PostgreSQL v9.0では、WALアーカイブシステムが動作しています。したがって、WALは定期的にアーカイブされます(3つのWALが作成されたとき、またはWALが15分より古い場合)。 次に、PG_DATAディレクトリのバイナリパックアップ(pg_xlogサブディレクトリを除く)を追加します。そのためにpg_start_backup(),、バイナリコピーとを実行しpg_stop_backup()ます。 私はpg_start_backupとpg_stop_backupが何をしているかをよく理解していると思います。最初のものはチェックポイントを作成し、最後のものは最後のWALファイルがアーカイブされていることを確認します。 公式ドキュメントから、バイナリデータコピーについて次のことが必要であることがわかります。 tarやcpio(pg_dumpやpg_dumpallではない)などの便利なファイルシステムバックアップツールを使用して、バックアップを実行します。これを行っている間は、データベースの通常の操作を停止する必要も望ましくもありません。 だから私はとても困惑しています。これは、コピーの作成中にチェックポイントを実行できることを意味します。コピーコマンドはコピーの実行中にデータの変更を許可する必要があることを示す多くのドキュメントを見ましたが、適切なツールを見つけるだけで大​​丈夫です。しかし、私の質問は、一貫性のないファイル(チェックポイントの前のファイル、後のファイル)を含むpg_dataコンテンツを使用してpostgreSQLがどのようにリカバリを処理するかです。 トランザクションログを再生することにより、Postgresqlはこれらすべてのファイルを正しい状態にできますか?バックアップの実行中にテーブルの作成とドロップ操作が危険であることがわかりました。バキュームコマンドなどの危険な操作はありませんか?pg_backupはバキューム操作を一時停止しますか?バイナリコピープロセスの開始の最後にglobal / pg_controlファイルのコピーを作成する必要がありますか?スナップショット対応のファイルシステム(xfs-freezeなど)を使用して、復元プロセスを高速化する必要がありますか? バックアップスクリプトのクラッシュはpg_stop_backupを自動的に起動しないので、バックアップ状態が長時間続く可能性があります(私のnagiosが誰かを呼び出してpg_stop_backup()を修正するまで)。したがって、PostgreSQLでこれら2つのコマンドの間に何か違いがある場合、それがどのような影響を与えるかを理解するために、それを知りたいと思います。 教えてください。

3
postgresの他のセッションの一時テーブルにアクセスする方法はありますか?
(ローカル)postgresデータベースを使用し、一時テーブルにいくつかの情報を保存するWindowsアプリケーションを使用しています。一時テーブルをご覧になりたいのですが、pgadminとdbVisは次のように言っています:ERROR: cannot access temporary tables of other sessionsデータを照会するとき。スキーマとテーブルの権限を変更しようとしましたが、プログラム自体と同じユーザー(少なくともdbVisで)でデータベースにアクセスしているにもかかわらず、これは役に立たないようです。データベース内のすべてのセッションへの「ルート」アクセスを許可するデータベースで変更できる設定はありますか?

4
ソースデータベースがUTF8でエンコードされている場合、復元時にUTF8の無効なバイトシーケンスコピーエラーを解決する方法
PostgreSQL 8.2.xデータベースを別のサーバーに移行するタスクが与えられました。これを行うには、pgAdmin 1.12.2(ちなみにUbuntu 11.04)を使用し、カスタム/圧縮形式(.backup)とUTF8エンコードを使用したバックアップと復元を使用しています。 元のデータベースは、次のようにUTF8です。 -- Database: favela -- DROP DATABASE favela; CREATE DATABASE favela WITH OWNER = favela ENCODING = 'UTF8' TABLESPACE = favela CONNECTION LIMIT = -1; 移行先サーバーで、このようなデータベースを作成しています。しかし、復元オプションを使用して.backupファイルからデータベースを復元すると、次のエラーのいくつかが表示されます。 pg_restore: restoring data for table "arena" pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry …

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