• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    主站蜘蛛池模板: 热久久国产欧美一区二区精品| 一区二区日韩国产精品| 欧美精品黑人粗大视频| 国产成人精品日本亚洲直接| 无码人妻精品一区二区蜜桃AV| 欧美性videofree精品| 一本一道久久a久久精品综合| 丰满人妻熟妇乱又伦精品劲| 2048亚洲精品国产| 亚洲AV无码久久精品色欲| 精品国产成人在线| 中文字幕精品一区二区日本| 国产午夜无码精品免费看| 日韩精品一区二区三区在线观看| 国产成人精品免费大全| 精品国内片67194| 国产精品免费观看调教网| 最新欧美性爱精品一区二区三区 | 精品国产网红福利在线观看| 亚洲av无码国产精品色午夜字幕| 欧美日韩精品一区二区视频| 国产女人18毛片水真多18精品 | 国产精品青青在线观看爽香蕉| 国产91精品一区二区麻豆网站 | 91国在线啪精品一区| 精品日韩亚洲AV无码| 无码日韩人妻精品久久蜜桃 | 国产精品欧美久久久天天影视| 精品无码人妻一区二区免费蜜桃| 日韩三级精品| 人妻少妇精品无码专区动漫| 久久精品亚洲精品国产欧美| 黑巨人与欧美精品一区| 国产一级精品高清一级毛片| 国产精品一区二区av不卡| 国产午夜精品理论片免费观看| 国产成人无码精品久久久免费| 国产成人精品免高潮在线观看| 国产区精品高清在线观看| 精品久久久无码中文字幕| 精品精品国产高清a毛片|