データベース管理者

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


2
これはOracle Whereの新しい一般的なパターンですか(Select NULL FROM…)?
数年前、書くことは一般的でした where exists (Select * from some_table where some_condition) 昨年、多くのt-sqlスクリプトが星の代わりに数字の1を使用するように切り替わったことに気付きました where exists (Select 1 from some_table where some_condition) ちょうど私はこのOracleの例を見ました WHERE EXISTS (SELECT NULL FROM ... これはOracleで一般的なパターンですか?そして、これはこのようなものを使用するためのパフォーマンス引数です。

3
組み込みデータベースとして使用することが推奨されているデータベースはどれですか?
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 アプリケーション内にデータを格納するための組み込みデータベースとして使用することが推奨されているデータベースはどれですか。組み込みデータベースは、より大きなシステムデータベースに同期する場合と同期しない場合があります。

3
ストアドプロシージャを使用してデータを処理することと、検索後に関数にデータを供給することとでは、パフォーマンスが向上しますか?
タイトルはそれを要約します。私はPHPにかなり余裕があり、MySQLから取得した値を使用して必要なことを実行できますが、知識を広げるために、おそらくそれがロングラン。それらは同等ですか(最終的にはほぼ同じ量の処理が行われるため)、または一方が他方よりも明らかに有利な場合がありますか?

3
Accessのデータ変更をテーブルレベルでログに記録する方法
非営利組織のAccessデータベースをサポートしています。データが不思議に変化しているという問題があり、これがコンピューターの知識がほとんどないユーザーが原因なのか、私のバックグラウンド処理が原因なのかについて、親しみやすい議論が交わされました。 これらの条件について、UIレベルでいくつかのチェックを追加しましたが、特定のフィールドが変更されたときにログを記録するために、データベーステーブルレベルでいくつかのチェックを行いたいと思います。このようにして、変更がユーザーによって開始されたのか、バックグラウンドで実行されている更新クエリから開始されたのかを知ることができます。通常はon updateトリガーを使用しますが、私の知る限り、Accessはトリガーをサポートしていません。Accessで利用できる他のロギングまたはトリガーのような機能はありますか?

3
MySQL LDAP認証
MySQLでのLDAP認証と承認は可能ですか?要件は何ですか(MySQLバージョン、サードパーティソフトウェアなど)?どのように構成されていますか? ありがとう。

3
JOINステートメントの出力はどのように見えますか?
結合をしばらく使用したいと思っていましたが、出力の視覚化に問題があるため、どのように使用するかわかります。 2つのテーブルがあるとします。 CREATE TABLE Cities ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, city tinyblob ); CREATE TABLE Users ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username TINYBLOB, city INT UNSIGNED, FOREIGN KEY (city) REFERENCES Cities (id) ); アプリケーションがSQLクエリを実行してユーザーのプロファイルデータを取得する場合、結合を使用してユーザーのレコードに関連付けられた都市を取得するにはどうすればよいですか。また、出力されたレコードはどのように表示されますか?

8
開発ボックスに対する開発者へのSA特権の付与
私たちの激しい抗議にもかかわらず、私たちの経営陣は、開発チームに開発サーバーに対する「sa」権限を付与する必要があると決定しました。キャッチは、私たち、DBサポートグループがまだこのボックスを維持する責任があるということです。 私たちは今、これらの強化された特権を持つ開発チームのために、すべきこととすべきでないことのリストを思いつくことを任されています。 このリストに追加してください: DO-開発中のDBにアクティビティを制限する しない - SQLインスタンスの設定を変更する sp_configure(cmdshellを含む) セキュリティ設定の追加/変更/削除 データベースオブジェクトの追加/変更/削除 バックアップデバイスやリンクサーバーなどのサーバーオブジェクトの追加/変更/削除 複製の追加/変更/削除 メンテナンスプランの追加/変更/削除 チームに属していないデータベースに触れる これらのユーザーの活動を追跡するために利用できるツールへのポインタは大歓迎です。

4
VM上のシングルコアSQL Server
最近、私たちの学区はいくつかのサーバーをバージョン2005から2016に、そして物理サーバーからVMサーバーにアップグレードしました。 私たちのインフラストラクチャチームは、SQL Serverインストール用のVMサーバーをシングルコアで提示しました。 その部門の責任者に、SQL Serverがシングルコア上にあることが「嫌い」であり、彼が「証拠」を見たいと望んでいることを説明しようとしています。私が提示したデータはどれも彼の証明の必要性を満たしていなかったため、VM SQL Serverがシングルコアで効率的に動作しない理由に関するいくつかの記事を求めました。 これにはどの記事を使用しますか? 私のケースを作るために私に何か助けていただければ幸いです!

1
2つの左結合を使用するか、1つの左結合とANDを使用しますか?
2つLEFT JOINのie を使用する SELECT <some columns> FROM Table1 AS t1 LEFT JOIN Table2 AS t2 ON <condition1> LEFT JOIN Table2 AS t3 ON <condition2> これANDはシングルで使用するのと同じLEFT JOINですか?すなわち SELECT <some columns> FROM Table1 AS t1 LEFT JOIN Table2 AS t2 ON <condition1> AND <condition2> 両方が同じか、または一般的に異なりますか?

3
Mac OS X 10.10 mySQL 5.6.26はCLIからアクセスできますが、ポート3306からはアクセスできません
今日、MacにmySQL 5.6.26の新規インストールを行いました。期待どおりにTerminal.appからmySQLにアクセスできましたが、mySQLワークベンチを127.0.0.1ポート3306に接続できませんでした。実際にトリップしたのは、このポートにローカルに接続できなかった(nc -z 127.0。 0.1 3306)。 要するに、mySQLシステム設定ペインはポート330 7でmySQLの起動デーモンを作成しました。/ライブラリ/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist なぜなのかわかりません...他のすべてのインストールは3306でした。OSXのファイアウォールがポートを実際に「ブロック」している理由を不必要に掘り下げることから他の人を守るために、メモを書きましたがありませんでした。また、3306にハードコードされている場合でも、このLDはmy.cnfのポートをオーバーライドするようです。 お役に立てれば! bash-3.2# defaults read /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist { Disabled = 0; ExitTimeOut = 600; GroupName = "_mysql"; KeepAlive = 1; Label = "com.oracle.oss.mysql.mysqld"; LaunchOnlyOnce = 0; ProcessType = Interactive; Program = "/usr/local/mysql/bin/mysqld"; ProgramArguments = ( "/usr/local/mysql/bin/mysqld", "--user=_mysql", "--basedir=/usr/local/mysql", "--datadir=/usr/local/mysql/data", "--plugin-dir=/usr/local/mysql/lib/plugin", "--log-error=/usr/local/mysql/data/mysqld.local.err", "--pid-file=/usr/local/mysql/data/mysqld.local.pid", "--port=**3307**" …
7 mysql  mac-os-x 

1
特定の実際のクエリプランを再実行する
特定のクエリの実際のクエリプランをキャプチャしました。 その後、いくつかの変更(統計の更新を含む)を行い、その特定のクエリを再実行しました。現在、実際のクエリプランは異なります(これは理にかなっています)。 クエリの実行速度が大幅に向上しました。他の変更(IO設定、VM設定の変更、SQLインスタンスの再起動など)もパフォーマンスの向上を引き起こしている可能性があるため、新しい実行プランがこれと関係があるかどうか知りたいです。これをテストするためにもう一度クエリを実行し、SQL Serverに古い実行プランを強制的に使用させます。 質問:ユーザー指定の実行プランでクエリを再実行する方法、またはそのようなプランから直接クエリを実行する方法はありますか? これが私がこれを理解しようとしたものです: 私はオフィスで入手できる本(Professional SQL Server 2012の内部とトラブルシューティング、Microsoft SQL Server 2012のクエリ)を検索しました。 Google検索、たとえば「特定のクエリプランに基づいてクエリを実行」 DBA.SEは、「クエリプランの実行」や「実行プランの再実行」などの検索を行います。 そして最後に、以前に私の質問に何度も回答した質問です。「質問を投稿する」をクリックする前に、「すでに質問の回答がある可能性がある質問」を注意深く確認してください:-) つまり、これは可能ですか?もしそうなら:どのように?

3
SQL開発者:plsqlのセットアップデバッガー
リモートでpl / sqlをデバッグしようとしています。しかし、できません-データベースからエラーが返されます。これを修正してデバッグを開始するにはどうすればよいですか? ORA-30683: failure establishing connection to debugger ORA-12541: TNS:no listener ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68 ORA-06512: at line 1 UPD リモートサーバーで手順をデバッグしようとしています。ローカルコンピューターには、SQL開発者のみがインストールされています。

4
クエリで投影された列の型を取得するMySQLメタデータ関数?
コマンドを使用してテーブルから取得するのと同じ方法で、MySQL クエリからフィールドタイプを取得することはできますSHOW COLUMNSか?派生テーブルなどから SELECT x -- presumedMetaFn(x) -- returns "int" FROM ( SELECT 1 AS x UNION SELECT 2 ) AS t; 上記のクエリがある場合、xのタイプを取得するために使用できる関数または何かありますか?PostgreSQLはこれをシステム情報関数で利用できるようにしますpg_typeof SELECT x, pg_typeof(x) FROM ( VALUES (1),(2) ) AS t(x); x | pg_typeof ---+----------- 1 | integer 2 | integer (2 rows) テーブルのメタデータではなく、クエリの結果から検索しています。 PostgreSQLの11+上、これは実行することも可能であるクエリの後。psql\gdesc
7 mysql  metadata 

2
データセットクエリでNOLOCKヒントを設定するためのオプション
いくつかのコンテキスト: 最初に、クエリにロックのヒントを含まず、レポートを「まっすぐ」に書きました。より大きなレポートでは、これによりロックの問題が発生することがあります。で、最初の私たちは、使用してこれを是正WITH (NOLOCK)クエリ内のテーブルのためのヒントを。 それはテーブルのいずれかのヒントを忘れることは簡単です、非常に目障りだし、(b)は()ので、私たちは第二のアプローチの設定に移動TRANSACTION ISOLATION LEVELしREAD UNCOMMITTED、各データセットのクエリの先頭に(罰金です)。 ご想像のとおり、いずれかのデータセットのヒントは忘れがちです。だからこれは質問につながります: 質問:ヒントをレポートクエリと共に送信するためのオプションは何NOLOCKですか? PS。これはある程度XY問題(クエリの最適化、運用データベースに関するレポートの作成など、他の多くのXオプション)であることに気付きましたが、それでもそれ自体を有効な質問にしようとしました。 オプション: 上記のオプションを以下に示します。機能するかどうかについて知りたいオプションが追加されています。 WITH (NOLOCK)各テーブルのヒントを設定します。(目障りで、非常に忘れやすい) READ UNCOMMITTEDクエリ全体に対して分離レベルをに設定します。(まだ忘れやすい) これをレポートレベルで指定することはできますか?たとえば、1つのレポートのすべてのデータセットクエリがロックなしで実行されるようにします。 これを他のSSRSレベルで指定することは可能ですか?たとえば、これを特定のレポートフォルダに設定したり、拡張機能を利用したりできますか? これをデータソース/接続文字列レベルで指定することは可能ですか?たとえば、関連するすべてのレポートで特定の「No-lock-data-source」を使用していますか? 前のオプションに関連:特定の「no-lock-sql-user」(接続で使用されるもの)にデフォルトのロックヒントを指定することはおそらく可能ですか? ??? 実行可能なオプションはどれですか?私が見逃したオプションはありますか?

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