データベース管理者

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

2
ビット列にインデックスを追加すると、挿入が大幅に遅くなりますか?
約100万から500万レコードのテーブルがあります。そのレコードのごく一部では、ビット列の1つが「TRUE」に設定されています。そのレコードをすばやく見つける必要があります。インデックスはこの列の検索を高速化できると思いますが、INSERTを恐れています。したがって、私の質問です。 データベースは一種のデータウェアハウスのように機能するため、多くのSELECTがあり、小さい(1日あたり最大10〜20)が、非常に大きいINSERT(一度に最大20万レコード)があります。データベースへのインポートの時間が長くなるのではないかと心配です。

2
Cassandra ColumnFamily間で同じキースペース上の別のデータにデータをコピーするための良い方法は何ですか(SQLのINSERT INTOのように)?
Cassandra ColumnFamily / Tableから別の行にすべての行を簡単に転送する方法を見つけようとしています。 COPYコマンドは、私が理解し、適切なオプションです。ただし、すべてのデータを.csvディスクにダンプしてからロードし直すので、エンジン内で実行するより良い方法があるかどうか疑問に思わずにはいられません。 私が意味することの具体的な例はINSERT * FROM my_table INTO my_other_table、多くのSQLデータベースで利用可能であろう。もちろん、私はCassandraがNoSQLであり、したがって同じように機能しないことを理解していますが、それは利用可能なもののようです。 これを達成するための良い方法は何ですか? どうもありがとう!

3
SQL Serverデータベースからすべてのセキュリティ関連情報をエクスポートする方法
おそらくご存じのとおり、SQL Serverには、データベースの各要素(データベースレベルとオブジェクトレベルの両方)に対して宣言されているすべてのセキュリティ関連ステートメントをエクスポートするための、すぐに使えるソリューションはありません。 この情報を思い付く能力について話している すべてのユーザー すべてのユーザー定義の役割 データベースレベルのすべての権限(例:GRANT CREATE FUNCTION) オブジェクトレベルのすべての権限(例:GRANT SELECT ON OBJECT :: xxx) SQL Serverにはこのようなものがあるはずだと思うかもしれませんが、SQL Serverエクスポートウィザードも、オブジェクトを右クリックした結果として生成されるさまざまなスクリプトも、この情報をキャプチャしません。 私は、人々が丁寧に投稿したキュレートされていないスクリプトを使用してさまざまな「可能な解決策」をオンラインで見てきましたが、すべてのセキュリティ情報がキャプチャされることを100%確認する必要があるため、これらのスクリプトに完全に依存することはできません。 私はそれらを開始点として使用して自分で何かを書くこともできますが、多くの人が持っていると思われる要件のためにホイールを再発明する必要はありません。 この情報を確実に提供できるツールが(SQL Server製品またはサードパーティツールの一部として)提供されていませんか? または、少なくとも、ほとんどの人々が「仕事をする」ことに同意する、コミュニティがサポートするスクリプトはありますか? ありがとう!

1
数時間のPostgreSQLトランザクションコミット
ユーザーからPostgreSQLサーバーへの2つの接続があり、約4時間実行され、かなりの時間(少なくとも1時間はそれを監視していた)コミット状態になっているという問題が発生しています。 。これらの接続は他のクエリの実行をブロックしていますが、それ自体はブロックされていません。 問題の2つの関係を次に示します。 postgres=# select * from pg_stat_activity where usename = 'xxxxx'; datid | datname | procpid | usesysid | usename | current_query | waiting | xact_start | query_start | backend_start | client_addr | client_port -------+---------+---------+----------+---------+---------------+---------+-------------------------------+-------------------------------+-------------------------------+---------------+------------- 20394 | xxxxxx | 17509 | 94858 | xxxxx | COMMIT | f | …

3
db_ownerがデータベースを削除できません-エラー615、SQL Server
Amazon EC2でSQL Server 2012データベースを実行しています。データベースを作成、編集、削除できるユーザーを作成しました。新しいユーザーにdbcreatorサーバーの役割を与えました。 ユーザーはリモートで接続してcreate database foo;コマンドを正常に実行できます。しかし、ユーザーdrop database foo;がコマンドを使用してデータベースを再度削除しようとすると、次のエラーで失敗します。 Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM. Note the error and time, and contact your system administrator. ErrorCode: 21 選択されたデータベースは使用中ですmaster(そのため、使用中だからとは思いません)。また、管理ユーザーとしてログインして再度実行すると、コマンドは成功します。 新しく作成したデータベースを確認しましたが、ユーザーdb_ownerにはデータベース内のロールが期待どおりに割り当てられているので、作成したデータベースを削除するには、これで十分です。 http://technet.microsoft.com/en-us/library/ms178613.aspxによると、db_ownerロールは十分な権限である必要があります。「データベースのCONTROL権限、ALTER ANY DATABASE権限、またはdb_owner固定データベースロールのメンバーシップが必要です。」 エラー615を検索し、「データベーステーブルID%d、名前 '%。* ls'が見つかりませんでした。」を見つけました。私には意味がありません。http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx SQLサーバーのバージョン情報:Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) /n May 22 …

1
複数のサーバーログインの1人のデータベースユーザーへのマッピング
これは馬鹿げた質問のようですが、いくつかの調査にもかかわらず、(おそらく間違った用語を使用したために)これに関する情報を見つけることができませんでした。 複数のサーバーログイン(SQLサーバー認証)を単一のデータベースユーザー(データベースロールのメンバーとして割り当てられたアクセス許可を持つ)に記録することはできますか? 中央データベースから1つの設定を読み取る必要がある数十のSQLログイン(SQLサーバー認証)があり、ログインごとに独自のDBユーザーを作成するのではなく、これらのすべてのログインをターゲットデータベースの単一のDBユーザーにマッピングしたいと思います。 はいの場合、正しいT-SQL構文は何ですか?

1
プロシージャキャッシュヒット率を向上させる方法は?
プロシージャキャッシュヒット率が95%未満であると私が知ることができることは問題です。私のボックスでは、値は85から95%に移動します。 この問題を解決するにはどうすればよいですか?サーバーには十分なRAMがあるようですので、問題にはなりません。他に何ができますか?

2
Oracleはどこから始めるのですか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 この質問に必要な答えは1つだけです。データベース管理、PL / SQL、SQLなど、Oracleを使い始めるための優れたリソースのリストです。 あなたの質問はこの問題の複製としてクローズされている場合がありますが、その場合は問題が発生しないようにしてください。このサイトの専門家の焦点を薄めることなく、できる限り役立つよう努めています。この質問の複製として質問を閉じると、「本当に必要なのは、特定の質問にすぐに答えるのではなく、利用可能な最良のリソースのいくつかを読むのにしばらく時間を費やすことです。これらのリソースを通過すると、より高度な質問ですぐに戻ってきます!
11 oracle  plsql 

1
時間的妥当性と主/外部キーの関係
時間的な有効性と時間の機能を示すオラクルのチュートリアルをいくつか読みました。ただし、私が読んだ例では、デモテーブルで使用されている主キーはありません。 http://docs.oracle.com/cd/E16655_01/appdev.121/e17620/adfns_design.htm#ADFNS1005 http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm /temporal/temporal.html これらのテーブルに主キーを追加する必要がありますか?これらのテンポラルテーブルの1つが別のテーブルによってどのように参照されるのかについて疑問に思っているので、私は尋ねています。テンポラルテーブル間で外部キーを追加できますか? pk /外部キーの領域を追加してから、テーブルの参照先をpkで更新すると、fkのあるテーブルは、関係のなくなったレコードを指します。関係?もしそうなら、これはパフォーマンスにどのように影響しますか?通常の列を「外部キー」として使用し、クエリの参照期間に適切な列を選択するだけですか? 通常または疑似通常のpk / fkの使用法で時間データを表示する便利な例やチュートリアルを知っているか、持っている人はいますか? ありがとう

3
ログイン用のパスワードを誰が変更したかを知る方法はありますか?
SQL Server 2008 R2でログイン用のパスワードを変更したユーザーを見つけようとしています。 私はすでにデフォルトのトレースをチェックしました-それはそのイベントを記録しません。デフォルトのトレースには、次のセキュリティ関連のイベントが含まれます。 /* Audit Add DB user event Audit Add login to server role event Audit Add Member to DB role event Audit Add Role event Audit Add login event Audit Backup/Restore event Audit Change Database owner Audit DBCC event Audit Database Scope GDR event (Grant, Deny, …

1
1つのトランザクションで同じレコードが複数回更新された場合、いくつのバージョンが保存されますか?
Kimberly L. TrippによるMSDNの記事によると、Neal Gravesの「SQL Server 2005行バージョン管理ベースのトランザクション分離」 "... 特定のレコードの以前のバージョンはすべて、リンクリストにチェーンされています。また、長時間実行される行のバージョン管理ベースのトランザクションの場合、トランザクション的に一貫したバージョンにアクセスするには、アクセスごとにリンクをたどる必要があります。行」 これは、「行バージョニングを使用してコミットされた読み取りでの行バージョニング」と「スナップショット分離での行バージョニング」の両方のセクションに共通する「行バージョニングについて」セクションにあります。 さらに、変更による行のバージョン管理の例では、SNAPSHOTのみの複数のトランザクション(T1、T2、T3)による同じレコードの複数の更新のコンテキストで説明されています。 1つのトランザクションのみがレコードを複数回(複数のステートメントによって)更新する場合、複数のバージョンストアが保存(リンク)されますか、それともスナップショット「イメージ」の時点で取得されたもののみが取得されますか? まあ、この質問への答えはすぐに私のその他の保留中の関連する質問に答えるはずです: 行バージョン管理分離では、レコードのバージョンのリンクリストを使用するのはなぜですか? RCSIはSNAPSHOTより少ないか同じスペースを使用しますか?どうして?

3
1つまたは2つのインデックス?
データベースのテーブルに次のインデックスを作成しました。 CREATE INDEX [idx_index1] on [table1] (col1, col2, col3) サーバーは次の「不足している」インデックスを提案しています: CREATE INDEX [idx_index2] on [table1] (col1, col2) INCLUDE (col3, col4, col5, col6....) 維持する必要のある新しいインデックスを作成するのではなく、提案された列を含めるように既存のインデックス定義を修正するのは私には理にかなっています。col1とcol2を選択するクエリは、index1をindex2と同じくらい効果的に使用できます。私は正しいのですか、それとも何か不足しているのでしょうか?

3
STIntersectsのパフォーマンスの向上
テーブルにT_PINは300,000のピンとT_POLYGON36,000のポリゴンがあります。T_PINこのインデックスがあります: CREATE SPATIAL INDEX [T_PIN_COORD] ON [dbo].[T_PIN] ( [Coord] )USING GEOGRAPHY_GRID WITH (GRIDS =(LEVEL_1 = HIGH,LEVEL_2 = HIGH,LEVEL_3 = HIGH,LEVEL_4 = HIGH), CELLS_PER_OBJECT = 128, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]; T_POLYGON 持っています: …

5
未使用領域のSQL Serverテーブルの解放
SQL Server 2012 Expressに未使用のスペースが多いテーブルがあります。 データベースのスペースを解放する必要があります。 | NAME | ROWS | 予約済み| データ| INDEX_SIZE | 未使用| | ------------- | -------- | -------------- | ----------- --- | ------------ | -------------- | | MyTableName | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB | SQLで3165104KBをリリースするにはどうすればよいですか? 私はすでに試しました: Alter table …

2
MySQLは別のテーブルに対して結合するときにインデックスを使用しません
2つのテーブルがあります。最初のテーブルには、CMS内のすべての記事/ブログ投稿が含まれています。これらの記事の一部は雑誌にも掲載される場合があります。その場合、それらは雑誌固有の情報を含む別のテーブルと外部キーの関係を持っています。 以下は、これらの2つのテーブルの作成テーブル構文の簡略化されたバージョンで、いくつかの重要でない行が削除されています。 CREATE TABLE `base_article` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date_published` datetime DEFAULT NULL, `title` varchar(255) NOT NULL, `description` text, `content` longtext, `is_published` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `base_article_date_published` (`date_published`), KEY `base_article_is_published` (`is_published`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `mag_article` ( `basearticle_ptr_id` int(11) NOT NULL, …

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