データベース管理者

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

3
外部キー制約を変更するために必要な最小限の特権は何ですか?
外部キー制約を変更するために必要な最小限の特権は何ですか? MySQL 5.5.41がこのバグを修正した後、移行スクリプトが機能しなくなりました。 InnoDBは、ユーザーに十分な権限がない親テーブルを参照する外部キーの作成を許可しました。バグ#18790730) 私はこのエラーを受け取ります: SQLSTATE [42000]:構文エラーまたはアクセス違反:1142 REFERENCESコマンドがテーブル 'core.users'のユーザー 'foo' @ 'localhost'に拒否されました(SQL:変更テーブル `user_baz`が制約user_baz_user_id_foreign外部キー(` user_id`)を参照しています)更新カスケードの削除カスケードの `core`.`users`(` id`)) つまり、権限を修正する必要があります。必要な最低限の特権は何ですか?
12 mysql 

3
PostgreSQL手続き言語オーバーヘッド(plpython / plsql / pllua…)
リアルタイムタスクのパフォーマンス言語のパフォーマンスで PostgreSQLのユーザー定義関数に関する情報を見つけようとしています。 それらは組み込み関数とどのように比較されますか? Postgresがplpython関数とplpgsql関数とpllua関数をどのように呼び出し/管理するか(オーバーヘッドで)違いはありますか(VM自体ではなく、Postgres統合/コンテキスト/データ転送側に興味があります)? コンテキストは大きなオーバーヘッドですか?リアルタイムデータマッピングに使用できますか(1000クエリ/秒としましょう)) ユーザー定義関数をplpgsqlで作成して、他のpg / languageを作成する利点はありますか?上のドキュメント彼らは利点を列挙したが、私は、彼らはすべてのPostgreSQL手続き言語に適用されますと思います。 関連する調査結果: 非標準的な使用のためのPL言語の速度 PostgreSQL関数言語のパフォーマンス:CとPL / PGSQL

2
関係<テーブル>の許可が拒否されました
私はpsqlで次のSQLを実行しました。 CREATE USER bspu LOGIN; CREATE DATABASE bsp OWNER bspu; GRANT ALL PRIVILEGES ON DATABASE bsp TO bspu; \c bsp CREATE TABLE users ( id SERIAL PRIMARY KEY, client_id VARCHAR(20) NOT NULL, api_key VARCHAR(100) NOT NULL, api_secret VARCHAR(100) NOT NULL, auth_token VARCHAR(128) NOT NULL ); としてログインしbspu、usersテーブルをクエリしようとすると、エラーが発生します。 permission denied for relation …

1
SQL Serverエラー「ファミリーシーケンス番号2がありません」
サーバーにローカルデータベースを復元しようとしていますが、バックアップに問題があります。ファイル.bakを実行しましたが、サーバーにロードしようとするたびに許可されません。 ここに私が受け取るエラーメッセージのスクリーンショットがあります: 私はRESTORE LABELONLY自分のファイルを復元するために使用できるが、それでも機能しないことを読んだのですが、実行するたびに次のようなものが表示されます: バックアップデバイス 'C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.JOSEMA \ MSSQL \ Backu \ INNOVA-T.bak'を開けません。オペレーティングシステムエラー3(このエラーのテキストを取得できませんでした。理由:15105)。メッセージ3013、レベル16、状態1、行1 RESTORE LABELONLYが異常終了しています。 どんな助けでも素晴らしいでしょう。ありがとうございました。

2
PostgresのJOIN条件とWHERE条件
Postgres初心者はこちら。 このクエリが最適化されているかどうか疑問に思っていますか?100%必要な値だけを結合し、すべての動的条件をWHERE句に残そうとしました。下記参照。 SELECT * FROM myapp_employees JOIN myapp_users ON myapp_users.user_id=myapp_employees.user_id JOIN myapp_contacts_assoc ON myapp_contacts_assoc.user_id=myapp_users.user_id JOIN myapp_contacts ON myapp_contacts.contact_id=myapp_contacts_assoc.contact_id WHERE myapp_contacts.value='test@gmail.com' AND myapp_contacts.type=(1)::INT2 AND myapp_contacts.is_primary=(1)::INT2 AND myapp_contacts.expired_at IS NULL AND myapp_employees.status=(1)::INT2 AND myapp_users.status=(1)::INT2 LIMIT 1; 注:コンテキストについては、このプロシージャはユーザーが従業員でもあるかどうかを確認しています(昇格された特権/別のユーザータイプ)。 とにかく、これは正しい方法ですか?たとえば、JOIN ONには、expired_at IS NULLのチェックなど、より多くのステートメントを含める必要がありますか?なぜ、またはなぜこれが意味をなさないのですか?

1
複製されるLOBデータの長さ(2135980)が構成済みの最大値65536を超えています
レプリケーションエラー「レプリケートされるLOBデータの長さ(2135980)が構成済みの最大65536を超えています」が発生します。 sp_configureは以前に適用されて最大値(-1)に設定され、sys.configurationsに対するクエリは最大値(-1)が使用中であることを確認しました。 EXEC sp_configure 'max text repl size', -1 ; RECONFIGURE; GO select * from sys.configurations where name like 'max text repl size%'; GO 最大値ではなく「最大テキストreplサイズ」に大きな値を使用して、無効にしてからもう一度オンにしてみましたが、役に立ちませんでした。 「テキストの最大replサイズ」の設定や他のどこかを上書きできるものはありますか?

2
MySQL-それ自体を参照する外部キー制約を持つ行を削除します
ユーザーが私のウェブサイトに投稿したすべてのフォーラムメッセージを保存するテーブルがあります。メッセージ階層構造は、入れ子集合モデルを使用して実装されます。 以下は、テーブルの単純化された構造です。 Id(主キー) Owner_Id(IDへの外部キー参照) Parent_Id(IDへの外部キー参照) nleft そろそろ nlevel これで、テーブルは次のようになります。 + ------- + ------------- + -------------- + ---------- + ----------- + ----------- + | Id | Owner_Id | Parent_Id | nleft | nright | nlevel | + ------- + ------------- + -------------- + ---------- + ----------- + ----------- + | 1 …

2
psql:致命的:ユーザーのピア認証に失敗しました
Ubuntu 15.10にPostgreSQL 9.4をインストールしました。 私はユーザーを作成しました createuser -P myuser 私はデータベースを作成しました createdb -O myuser mydatabase 編集pg_hba.confして追加しましたlocal mydatabase myuser md5 私はPostgreSQLを再起動しました sudo service postgresql restart ユーザーmyuserはPostgresSQLユーザーのみで、Ubuntuにはユーザーアカウントがありません。 でデータベースに接続しようとすると、psql -W mydatabase myuserで失敗しpsql: FATAL: Peer authentication failed for user "myuser"ます。 PostgreSQLが実行中… ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since …

3
MySQLにすべてのインデックスを強制的に強制するにはどうすればよいですか?
FORCEインデックスに関する記事を読みましたが、MySQLを強制的にIGNORE ALLインデックス化するにはどうすればよいですか? 試しましたがSELECT * FROM tbl IGNORE INDEX(*)、うまくいきませんでした。 なぜ私(および他の人)がこれを行う必要があるのか​​については、たとえば、次のようにtldでリファラー統計を要約する必要がありました。 SELECT count(*) as c, SUBSTRING ( domain_name, LENGTH(domain_name) - LOCATE('.', REVERSE(domain_name)) + 2 ) as tld FROM `domains_import` IGNORE INDEX(domain_name) GROUP BY tld ORDER BY c desc LIMIT 100 ...しかし、私は常に定義されているインデックスを確認するか、Explainを使用してどのインデックスを使用するかを決定する必要があります。単に書いてIGNORE INDEX ALL、気にしないのは非常に便利です。 誰かが構文やハックを知っていますか?(MySQL定義テーブルを介した数十行は、実際にはショートカットではありません)。 チャットディスカッションから追加: Bechmark: インデックスなし= 148.5秒 インデックス= 180秒で、まだデータの送信で実行中SSDアレイは非常に強力であるため、データキャッシュはほとんど気にしません... ベンチマークの定義: CREATE …
12 mysql  index  mysql-5.6 

2
多くの列といくつかのテーブル-パフォーマンスの面で
はい、私はデータの正規化が(現状のまま)私の優先事項であることを認識しています。 私は列の車両データを格納する65個の列を持つテーブルを持っている:used_vehicle、color、doors、mileage、priceなど、合計65インチ 今、私はそれを分割して持つことができるVehicleテーブル、VehicleInterior、VehicleExterior、VehicleTechnical、VehicleExtra(すべての一対一のメインとVehicleテーブル)。 約500万行(車両)があるとします。 上SELECTでのWHERE句:パフォーマンスが(どちらの場合は、上の少なくともインデックスを付けて検索するほうが良いでしょうIDs): Vehicle 65列のテーブルまたは VehicleテーブルJOINSに関連するすべてのデータを返すために、他の4つのテーブル(すべてで5万行)にVehicle? (データベースエンジンごとに、PostgreSQLやMySQLを検討してください)。 以前の経験から得られた詳細な洞察を本当に感謝しますか?

2
redis初心者-ハッシュ内にハッシュを作成する方法?
このタイプの構造をredisで作成したい:(基本的にはjsonデータ) { "id": "0001", "name":"widget ABC", "model": "model123", "service":"standard", "admin_password": 82616416, "r1": { "extid":"50000", "password":"test123", }, "r2": { "ext":"30000", "password":"test123", }, } これまでに試したこと: 私は「サブ」ハッシュなしでハッシュを作成しようとしましたが、これは基本的なことを確認するためです。これが、redis-cliから始めたものです。 HMSET widget:1 id 0001 name 'widget ABC' model 'model123' service standard admin_password 82616416 HMSET widget:2 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 …
12 nosql  redis  hashing 

2
PostgreSQL-挿入/更新が外部キー制約に違反しています
私はpostgreSQLの新人です。3つのテーブルがあり、1つのテーブルが他の2つのテーブルの主キーを参照しています。しかし、データをに挿入できませんでしたTable3。以下のコードを参照してください: DROP TABLE Table1 CASCADE; CREATE TABLE Table1( "DataID" bigint NOT NULL DEFAULT '0', "AdData" integer DEFAULT NULL, PRIMARY KEY ("DataID") ); DROP TABLE IF EXISTS Table2 CASCADE; CREATE TABLE Table2 ( "Address" numeric(20) NOT NULL DEFAULT '0', "Value" numeric(20) DEFAULT NULL, PRIMARY KEY ("Address") ); DROP TABLE IF EXISTS …

3
MSSQLで開かれたトランザクションが長すぎるとどのような影響がありますか?
DBでトランザクションを開始し、それをコミットまたはロールバックするのを忘れた場合、どうなるのかと思っています。サーバーはダウンしますか?3日間放置したとしましょう。 他のユーザーが閉じられていないトランザクションがあることを知らなかったと仮定してそれを使用しているユーザーもいます(ユーザーがデータベースにデータを挿入していると仮定しましょう)。このアクションの結果は何ですか?

2
NULL列をNOT NULLにすばやく変更する
何百万もの行とNULL値を許可する列を持つテーブルがあります。ただし、現在、その列にNULL値を持つ行はありません(クエリでこれをかなり迅速に確認できます)。ただし、コマンドを実行すると ALTER TABLE MyTable ALTER COLUMN MyColumn BIGINT NOT NULL; クエリは比較的長い時間かかります。実際には10〜20分かかり、チェック制約を追加する場合の2倍以上の時間がかかります。特にその列にNULL値を持つ行がないことを知っているので、その列のテーブルのメタデータを即座に更新する方法はありますか?

2
io_stall_writes_msがtempdbでこれほど高いのはなぜですか?
ユーザーとシステムのデータファイルは同じディスクドライブにあります。(io_stall_write_ms /(1.0 + num_of_writes))は、ユーザーファイルでは2未満ですが、tempdbファイルは通常400を超えています。いくつかのサーバーでは、tempdbに書き込むのに時間がかかる理由があるので興味があります通常のデータベースデータファイルよりも。 SELECT DISTINCT UPPER(LEFT(mf.physical_name, 1)) AS Directory, ( io_stall_write_ms / ( 1.0 + num_of_writes ) ) as result, io_stall_write_ms, num_of_writes, fs.database_id, fs.[file_id] FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS fs INNER JOIN sys.master_files AS mf ON fs.database_id = mf.database_id AND fs.[file_id] = mf.[file_id] ありがとうございました、

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