データベース管理者

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

1
サブクエリでの外部エイリアスの使用
| payments | | transactions | | transaction_items | |:--------------:| |:------------:| |:-----------------:| | id | | id | | id | | date | | number | | transaction_id | | amount | | date | | description | | transaction_id | | val | | price | | discount …
11 mysql  mysql-5.5 

1
Postgresメタコマンドの同等のSQLクエリを取得する
タイトルはわかりやすいものにしてください。Postgresのメタコマンドを対応する/基になるSQLクエリに何らかの形で変換できるようにしたいのですが、少なくともPostgresと、テーブルにメタ情報を格納する方法について詳しく知りたいのです。 これが可能である場合、何かアイデアはありますか? 例えば: データベースEXAMPLEに接続する\dtとSELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;、同じ結果が返されます 。 可能であれば、関数/マクロ/何でもSELECT table_schema,table_name FROM information_schema.tables ORDER BY table_schema,table_name;入力\dtするときに値を取得する方法を見つけたいです。
11 postgresql 

4
mysql 5.7の新規インストールでのrootパスワードの設定
私はmysqlをサービングにインストールしようとしていCentOS Linux release 7.2.1511ます。プロセスのインストールを見てください: # sudo yum install mysql-server 出力: Dependencies Resolved =========================================================================================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================================================================================== Removing: mysql-community-client x86_64 5.7.10-1.el7 @mysql57-community 109 M mysql-community-server x86_64 5.7.10-1.el7 @mysql57-community 652 M Transaction Summary =========================================================================================================================================================================================================== 私はmysqlデーモンを実行しました: # sudo service mysqld start サービスの確認: # ps -ef|grep mysql mysql 1371 1 0 …
11 mysql  linux  centos 

2
MySQLのユーザーにデータベース作成特権を付与する方法
次のコマンドは、ユーザー「admin」にすべてのデータベースのすべての権限を提供します。ただし、「admin」がデータベースを作成することはできません。 GRANT ALL ON * . * TO 'admin'@'localhost'; 「admin」がデータベースを作成するためのアクセスを提供するにはどうすればよいですか? データベースを作成しようとすると、次のエラーが発生します- エラー1044(42000):データベース 'newdb'へのユーザー 'admin' @ 'localhost'のアクセスが拒否されました
11 mysql 

2
合計時間の75%を使用するクエリ「Creating Sort Index」のMySQLプロファイル
クエリを最適化する方法(約100ミリ秒かかる)と、合計時間Creating Sort Indexを使用して表示される実行プロファイルを理解しようとしています75%。まず、ソートインデックスの作成に正確に影響するものは何ですか。disk / ioですか? 次に、クエリ自体に最適化できるものはありますか? SELECT r.`id`, r.name, r.public_uri, rv.version, rv.interpreter, rv.notes, rv.content, r.added, r.added_by, r.modified, r.modified_by, r.public, r.public_by FROM recipe_heads rh, recipes r, recipe_versions rv WHERE rh.recipe = r.`id` AND rh.recipe_version = rv.`id` AND r.`id` = rv.recipe ORDER BY r.added DESC 説明:
11 mysql  profiler 

1
Postgresql:デフォルトのPSQLクライアントエンコーディングを設定する
を使用してPostgresql DBに接続すると、psql次のメッセージが頻繁に表示されます。 => SELECT * FROM question_view ; ERROR: character with byte sequence 0xd7 0x9e in encoding "UTF8" has no equivalent in encoding "LATIN1" このSOの回答に従って、クライアントのエンコーディングをそれに応じて変更する必要があることを理解しています。 SET client_encoding = 'UTF8'; client_encodingDBに接続するたびに変更するのは面倒です。.pgpassファイルまたは他の場所でこの設定を永続的に構成する方法はありますか?

1
リモートサーバーからPostgreSQLデータベースをコピーする
MySQLを使用していたときに、サーバーにSSHで接続するコマンドを実行し、データベースをローカルマシンにコピーできました。 ssh -t remoteserver 'mysqldump --compress -u dbuser --password = "password" db_name' | / usr / local / mysql / bin / mysql -u root --password = "password" local_db_name どうすればPostgreSQLで同じことができますか?
11 postgresql 

3
カスケード削除を避けるべき時期はありますか?
SQL Server 2008には、1対多の関係で他の3つの子テーブルにリンクされているプラ​​イマリテーブルがあります。したがって、プライマリテーブルでカスケード削除を使用して、プライマリテーブルのレコードが削除されると子テーブルのすべてのレコードが削除されるようにすることを検討しています。 では、カスケードは正しい選択をここで削除しますか? カスケードdeteleを使用しない場合

2
主キーの代わりにIDを使用することをお勧めしますか?
私たちは宣言できIdentityようにid_numそれはとてもid_numユニークな番号の増分を持つことになります。 CREATE TABLE new_employees ( id_num int IDENTITY(1,1), fname varchar (20), minit char(1), lname varchar(30) ) 各行に一意の番号が提供さIdentityれているPrimary keyため、の代わりに使用することをお勧めしますIdentityか?

7
別の文字列内の文字列のすべての位置を見つける方法
patindexテーブルまたは変数ですべてのポジションを見つけるにはどうすればよいですか? declare @name nvarchar(max) set @name ='ali reza dar yek shabe barani ba yek ' + 'dokhtare khoshkel be disco raft va ali baraye' + ' 1 saat anja bud va sepas... ali...' select patindex('%ali%',@name) as pos これは戻ります1が、すべての結果が必要です。例: pos === 1 74 113

1
JOIN句でORを使用する場合の奇妙なクエリプラン-テーブル内のすべての行の定数スキャン
JOIN句でORを使用するよりも2つの結果セットのUNIONが優れている理由を示すために、サンプルクエリプランを作成しようとしています。私が書いたクエリプランには困惑しています。Users.Reputationの非クラスター化インデックスでStackOverflowデータベースを使用しています。 クエリは CREATE NONCLUSTERED INDEX IX_NC_REPUTATION ON dbo.USERS(Reputation) SELECT DISTINCT Users.Id FROM dbo.Users INNER JOIN dbo.Posts ON Users.Id = Posts.OwnerUserId OR Users.Id = Posts.LastEditorUserId WHERE Users.Reputation = 5 クエリプランはhttps://www.brentozar.com/pastetheplan/?id=BkpZU1MZEにあります。クエリの所要時間は4:37分で、26612行が返されました。 このスタイルの定数スキャンが既存のテーブルから作成されるのを見たことがありません-常に一定のスキャンがユーザーによって入力された単一の行に対して使用される場合、すべての単一の行に対して一定のスキャンが実行される理由がわかりませんたとえば、SELECT GETDATE()。なぜここで使用されるのですか?このクエリプランを読む際に、いくつかのガイダンスをいただければ幸いです。 そのORをUNIONに分割すると、同じ26612行が返される12秒で実行される標準プランが作成されます。 SELECT Users.Id FROM dbo.Users INNER JOIN dbo.Posts ON Users.Id = Posts.OwnerUserId WHERE Users.Reputation = 5 UNION SELECT Users.Id …

6
READ UNCOMMITTED分離レベルを使用するのに最適な状況
ご存じのとおり、READ UNCOMMITTEDは、ダーティリードやファントムリードなどが発生する可能性がある最低の分離レベルです。この分離レベルを使用するのに最適な時期はいつですか、どのような理由で使用されるのですか? 実は前に答えを読んでみましたが、例が少ないので完全には理解できませんでした。

1
ローカルサービスアカウントで実行されているSQL Serverからドメインユーザーが所有するSSISパッケージを実行する
SQL Serverオブジェクトの転送タスクを含むSSISパッケージを実行したいのですが。関連するサーバーは同じドメイン上にありますが、SQL Serverサービスはローカルサービスアカウントで実行されています。したがって、環境は次のようになります。 ドメイン サーバー1 ローカルアカウントで実行されているSQL Server ファイルシステム:SSISパッケージ SQL Serverエージェント:ジョブ サーバー2 ローカルアカウントで実行されているSQL Server 両方のサーバーにログオンできるようにするために、サービスアカウントとして使用するドメインアカウントを作成しました。このドメインアカウントを使用してサーバー1にログオンし、ファイルシステムからパッケージを実行すると、すべての手順が成功します。しかし、SQL Serverにジョブを追加しようとすると、次のいずれかの問題が発生します。 状況1.ジョブの所有者:ローカルアカウント。ドメインアカウントのプロキシとしてSSISステップを実行します。ジョブの所有者をローカルアカウントに設定し、ジョブをドメインアカウントのプロキシとして実行すると、ジョブ自体は正常に実行されますが、パッケージは次のようなエラーをスローします 次のエラーで実行が失敗しました:「ディレクトリ 'LocalApplicationData'は存在しません。」 このエラーは、サーバー1でドメインユーザーの管理者権限を持つログインを作成することで修正できますが、これは明らかに望ましい解決策ではありません。SQL ServerエージェントまたはDTSグループのいずれかにアカウントを追加しても機能しません。 状況2.ジョブの所有者:ドメインアカウント。ドメインアカウントのプロキシとしてSSISステップを実行します。ジョブの所有者とステップの「ユーザーとして実行」の両方をドメインアカウントに設定すると、ジョブがまったく開始されず、次のエラーが発生します。 ジョブの所有者(ドメイン\ドメインユーザー)にJob nameサーバーアクセスがあるかどうかを判別できません(理由:Windows NTグループ/ユーザー 'ドメイン\ドメインユーザー'に関する情報を取得できませんでした。エラーコード0x5。[SQLSTATE 42000](エラー15404)) 。 最後のエラーは、SQL Serverがローカルアカウントで実行されており、ドメインアカウントの権限を確認できないためだと思います。 ジョブを実行させる正しい方法は何ですか?状況2は私にはきれいに感じられますが、SQL Serverがローカルアカウントで実行されているため、不可能に思えます。状況1でも機能しますが、ドメインユーザーにSQL Serverの管理者権限を与えることはできません。 更新: @JonSeigelおよび@ Mr.Brownstone: これは、権限が不足しているために問題が発生していると考えられます。ただし、エラーは存在しない 'LocalApplicationData'(アカウントごとに生成されるフォルダーの1つ)に関するものです。パッケージを実行する資格情報を使用してサーバーにログインし(これにより、プロファイルディレクトリを作成します)、プロファイルディレクトリのアクセス許可のいくつかの組み合わせを試しました。この特定のディレクトリに対するほとんどすべてのアクセス許可を手動で付与する場合でも、上記のエラーが発生します。 さらに調査を行っているときに、http: //www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441のフォーラムスレッドに遭遇しました。
10 sql-server  ssis 


2
ドキュメントのsys.dm_exec_query_stats警告の実際的な影響は何ですか?
のドキュメントにsys.dm_exec_query_statsは次のように記載されています。 サーバーで現在実行中のワークロードがある場合、sys.dm_exec_query_statsの最初のクエリで不正確な結果が生成される可能性があります。クエリを再実行することで、より正確な結果を判断できます。 私は時々、アクティブなワークロード中にそのDMVを照会し、正確な結果を好みます。上記の警告を実際に適用する方法がわかりません。DMVを常に2回クエリし、2番目の結果セットを使用する方が正確です。それは少し難しいと感じます。DMVが不正確になる可能性があることに注意して、分析に組み込むことができますか?その場合、行の欠落、古い値、一貫性のない行など、どのような不正確さが表示される可能性がありますか? sys.dm_exec_query_statsアクティブなワークロード中に使用する場合のベストプラクティスは何ですか?
10 sql-server  dmv 

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