[解決済み] すべての(またはほとんどの)データベースで動作する効率的なSQLテストクエリまたは検証クエリ
2022-03-06 03:57:15
質問内容
多くのデータベース接続プーリングライブラリは、SQL接続がアイドルであるかどうかをテストする機能を提供しています。例えば、JDBCプーリングライブラリの場合
c3p0
というプロパティがあります。
preferredTestQuery
これは、設定された間隔で接続時に実行されます。同様に、Apache Commons DBCP には
validationQuery
.
多くの
例
クエリ
はMySQL用で、これを使うことを推奨しています。
SELECT 1;
をテストクエリの値として使用します。しかし、このクエリはいくつかのデータベースでは動作しません(たとえば、HSQLDBでは
SELECT 1
は
FROM
節を含む)。
同等の効率を持ちながら、すべてのSQLデータベースで動作するデータベース非依存型のクエリはありますか?
編集する
もしそうでない場合(そうであるように見える)、誰か様々なデータベースプロバイダに対応する一連のSQLクエリを提案してくれませんか?私の意図は、データベースプロバイダの構成に基づいて使用できるステートメントをプログラム的に決定することです。
どのように解決するのですか?
その
jOOQマニュアルの
DUAL
テーブル
には、jOOQの
select(inline(1))
クエリで使用されます。
-- Access
SELECT 1 FROM (SELECT count(*) dual FROM MSysResources) AS dual
-- BigQuery, CockroachDB, Exasol, H2, Ignite, MariaDB, MySQL, PostgreSQL,
-- Redshift, Snowflake, SQLite, SQL Server, Sybase ASE, Vertica
SELECT 1
-- MemSQL, Oracle
SELECT 1 FROM DUAL
-- CUBRID
SELECT 1 FROM db_root
-- Db2
SELECT 1 FROM SYSIBM.DUAL
-- Derby
SELECT 1 FROM SYSIBM.SYSDUMMY1
-- Firebird
SELECT 1 FROM RDB$DATABASE
-- HANA, Sybase SQL Anywhere
SELECT 1 FROM SYS.DUMMY
-- HSQLDB
SELECT 1 FROM (VALUES(1)) AS dual(dual)
-- Informix
SELECT 1 FROM (SELECT 1 AS dual FROM systables WHERE (tabid = 1)) AS dual
-- Ingres, Teradata
SELECT 1 FROM (SELECT 1 AS "dual") AS "dual"
関連
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しない
-
[解決済み】PL/SQL SELECTに複数のCOUNT(DISTINCT xxx)を指定すると、予期しない結果になる。
-
[解決済み】SQL Server サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、これは許可されません。
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] SQLクエリ「00904. 00000 - "%s: 無効な識別子".
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] mongoの外部キー?
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] ORA-00997: LONG データタイプの不正使用に対する回避策
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】''付近の構文が正しくない
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] ORA-12801: 並列クエリサーバー P004 および ORA-01555 でシグナルされたエラー: スナップショットが古すぎる。
-
[解決済み] SELECT DISTINCTを指定した場合、ORDER BY項目は必ず選択リストに表示されます。
-
[解決済み] SQL Server - INNER JOIN WITH DISTINCT
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み] Oracle Trigger ORA-04098: トリガーが無効で、再バリデーションに失敗しました。
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。