2012-03-12 3 views
0
我々は3.1をレールにRailsの2.2から我々のアプリを移行し、ActiveRecordの-oracle_enhancedアダプタ1.4.1

Oracleは、レールと強化3.1

私は私のログアプリをロードし、任意で、このSQLを見続けるを使用して開始している

リクエストがサーバーに送信されます。

(102.0ms) SELECT DECODE(table_name, UPPER(table_name), LOWER(table_name), table_name) FROM all_tables WHERE owner = SYS_CONTEXT('userenv', 'session_user') AND secondary = 'N' 
    (102.4ms) SELECT DECODE(table_name, UPPER(table_name), LOWER(table_name), table_name) FROM all_tables WHERE owner = SYS_CONTEXT('userenv', 'session_user') AND secondary = 'N' 
    (101.2ms) SELECT DECODE(table_name, UPPER(table_name), LOWER(table_name), table_name) 
..... 

はほぼ1時間で21個のクエリ..私はライブラリに文の起源を掘っ

は、これらのSQL文が毎回発射されている理由

class OracleEnhancedAdapter 
    def tables 

は誰も私を伝えることができます。この動作はレール2.2では見られませんでした。

アプリのパフォーマンスに影響を与えますか、それとも日常ですか?

答えて

1

これは、アプリケーションへの最初の要求時に発生します。 ActiveRecordが接続されたユーザーのデータベースからテーブル名のリストを取得するのはかなり日常的です。

このクエリは1回だけ起動されます(要求ごとではなく、サーバーが起動されるたびに発生します)。これは、データベース・アダプタの実装に固有です。

SQL(0.6ms)タイプ= 'テーブルの AND NOTは= 'sqlite_sequence'

に名前を付けるsqlite_master FROM SELECT名:例えばのために

は、sqlite3-ruby逸品同等のクエリを発射します

関連する問題