国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

What'snewinEdgeRails:EXPLAIN

來源:懂視網 責編:小采 時間:2020-11-09 13:16:49
文檔

What'snewinEdgeRails:EXPLAIN

What'snewinEdgeRails:EXPLAIN:What's new in Edge Rails: EXPLAIN: There are some new features related to EXPLAIN in the forthcoming Ruby on Rails 3.2 we'd like to share: Running EXPLAIN manually Automatic EXPLAIN for slow queries Silencing automatic EXPLAIN As of this w
推薦度:
導讀What'snewinEdgeRails:EXPLAIN:What's new in Edge Rails: EXPLAIN: There are some new features related to EXPLAIN in the forthcoming Ruby on Rails 3.2 we'd like to share: Running EXPLAIN manually Automatic EXPLAIN for slow queries Silencing automatic EXPLAIN As of this w

What's new in Edge Rails: EXPLAIN: There are some new features related to EXPLAIN in the forthcoming Ruby on Rails 3.2 we'd like to share: Running EXPLAIN manually Automatic EXPLAIN for slow queries Silencing automatic EXPLAIN As of this w

What's new in Edge Rails: EXPLAIN:
There are some new features related to EXPLAIN in the forthcoming Ruby on Rails 3.2 we'd like
to share:

  • Running EXPLAIN manually
  • Automatic EXPLAIN for slow queries
  • Silencing automatic EXPLAIN
  • As of this writing they are available for the adapters sqlite3, mysql2, and postgresql.

    Running EXPLAIN Manually

    You can now run EXPLAIN on the SQL generated by a relation this way:

    User.where(:id => 1).joins(:posts).explain
    The result of that method call is a string that carefully imitates the output of database shells.


    Please note that explain runs the query or queries and asks the database for their respective query plan afterwards. This is because due to eager loading a relation may trigger several queries to fetch the records and their associations, and in such cases some queries need the result of the previous ones.


    If the relation triggers several queries the method still returns a single string with all the query plans. This is an output meant for human consumption so we preferred to present everything as a string in a format which is familiar right away rather than a structure.


    Automatic EXPLAIN For Slow Queries

    Rails 3.2 has the ability to help in detecting slow queries.

    New applications get

    config.active_record.auto_explain_threshold_in_seconds = 0.5

    in config/environments/development.rb. Active Record monitors queries and if they take more than that threshold their query plan will be logged using warn.


    That works for anything running find_by_sql (which is almost everything, since most of Active Record ends up calling that method). In the particular case of relations, the threshold is compared against the total time needed to fetch the records, not against the time taken by each individual query. Because conceptually we are concerned with the cost of the call

    User.where(:id => 1).joins(:posts).explain

    rather than the cost of the different queries that call may trigger due to the implementation.

    By default the threshold is nil in the test and production environments, which means the feature is disabled.


    The value of that parameter is nil also if the threshold is not set, so existing applications will need to add it by hand if they migrate to 3.2 to be able to enable automatic EXPLAIN.

    Silencing Automatic EXPLAIN

    With automatic EXPLAIN enabled, it could still be the case that some queries are just slow and you know they have to be. For example, a heavyweight report in the backoffice.

    The macro silence_auto_explain allows you to avoid having EXPLAIN run repeatedly in those areas of code:


    ActiveRecord::Base.silence_auto_explain do
     # no automatic EXPLAIN here
    end

    Interpreting Query Plans

    The interpretation of the query plans is another topic, these are some pointers:
  • SQLite: EXPLAIN QUERY PLAN
  • MySQL: EXPLAIN Output Format
  • PostgreSQL: Using EXPLAIN
  • Happy debugging!

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    What'snewinEdgeRails:EXPLAIN

    What'snewinEdgeRails:EXPLAIN:What's new in Edge Rails: EXPLAIN: There are some new features related to EXPLAIN in the forthcoming Ruby on Rails 3.2 we'd like to share: Running EXPLAIN manually Automatic EXPLAIN for slow queries Silencing automatic EXPLAIN As of this w
    推薦度:
    標簽: EDGE new what
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 性久久久久久 | 国产成人久久精品亚洲小说 | 亚洲欧美日本另类激情 | 国产色综合久久无码有码 | 日韩欧美影院 | 欧美专区亚洲 | 精品一区二区三 | 国产在线观看精品一区二区三区91 | 久久国语精品 | 亚洲国产成人久久综合一 | 国产美女视频黄a视频全免费网站 | 在线视频 日韩 | 国模大胆一区二区三区 | 全免费a级毛片免费看不卡 日本二区在线观看 | 国产在线视频一区 | 日韩123 | 国产成人精品日本亚洲语音1 | 91导航在线观看 | 中文字幕亚洲精品 | 日本一区二区视频在线观看 | 国产亚洲视频在线观看 | 欧美不卡二区 | 性刺激欧美三级在线现看中文 | 亚洲色图欧美另类 | 国产成人一区二区三区在线播放 | 日韩精品一区二区三区国语自制 | 亚洲欧洲高清有无 | 国内在线观看精品免费视频 | 日韩欧美一区二区三区在线播放 | 国产不卡在线 | 日本成人一级 | 国产99视频精品免费观看7 | 国产日韩三级 | 91伊人国产 | 久久婷婷色一区二区三区 | 欧美日韩亚洲一区二区三区 | 欧美精品华人在线 | 日韩理论在线 | xxx色| 纯毛片 | 欧美日本一区二区三区 |