[{"data":1,"prerenderedAt":320},["ShallowReactive",2],{"project-21371642":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":43,"post_text":44,"what":45,"said":59,"maker_in_thread":158,"shape":167,"grid":172,"attempts":281,"same_week":282,"maker_shows":40,"maker_hidden":312,"reader_version":313,"card":314},"21371642","pg_flame","flamegraph visualizations of PostgreSQL query plans","title","Show HN: pg_flame – flamegraph visualizations of PostgreSQL query plans","https:\u002F\u002Fgithub.com\u002Fmgartner\u002Fpg_flame","github.com","mgartner",1572202182,2019,321,42,90,2195,5,"legend","dev_tools","query plan visualizer","cli",[24,25,26,27,28],"postgresql","query plan","flamegraph","explain analyze","query optimization","mixed",0.174,{"positive":32,"neutral":32,"mixed":33,"critical":34},4,2,3,13,{"execution":37,"design":39,"docs":41,"idea":42},{"positive":38,"critical":38},0,{"positive":40,"critical":34},1,{"positive":40,"critical":38},{"positive":40,"critical":38},[38,38,38,38,38,38,38,38,38,38,34,38,34,34,34,38,38,38,34,38,40,38,38,40,34,38,40,38,38,38,38,18,38,38,38,38,38,18,18,18],null,{"problem":46,"audience":44,"pricing":44,"motivation":53,"time_to_build":44,"stack":57,"openness":58,"stage":58,"team_size":58},{"value":47,"source":48,"evidence":49},"Understanding relative timing of each step in PostgreSQL query plans","maker",[50],{"id":51,"by":11,"text":52},"21377811","I think the text display is great too! I built pg_flame mostly to help understand the relative timing of each step. Your brain can compare the size of each bar in a flamegraph…",{"value":54,"source":48,"evidence":55},"Help understand the relative timing of each step in a query plan",[56],{"id":51,"by":11,"text":52},[],"unknown",{"praise":60,"objections":91,"requests":108,"questions":129,"alternatives":137},[61,77],{"value":62,"source":63,"evidence":64},"Useful tool for PostgreSQL query optimization","commenter",[65,69,73],{"id":66,"by":67,"text":68},"21372063","bflesch","I love this tool! But generally speaking, the user experience of the PostgreSQL admin workflow could be improved so much. The psql client binary should include visualizations…",{"id":70,"by":71,"text":72},"21376117","nerder92","Wow, i'm struggling with a sql query in psql just right now, this seems to be just what i was looking for! Thank you so much!",{"id":74,"by":75,"text":76},"21373427","ranadeep","Awesome job. This is really useful.",{"value":78,"source":63,"evidence":79},"Pointer to alternative visualizers and tools",[80,83,87],{"id":81,"by":67,"text":82},"21372226","Yes, some tools such as the query analyzer by depesz [1] work by copy-pasting the EXPALIN ANALYZE output into your browser. But IMHO the overall friction is still too large for…",{"id":84,"by":85,"text":86},"21372973","aeyes","This is the best tool I know, works pasting only the JSON output: http:\u002F\u002Ftatiyants.com\u002Fpostgres-query-plan-visualization\u002F The information density the rendering gives me is way…",{"id":88,"by":89,"text":90},"21376895","daamien","See PEV2 : https:\u002F\u002Fgithub.com\u002Fdalibo\u002Fpev2",[92,101],{"value":93,"source":63,"evidence":94},"Workflow requires exporting JSON and moving it to another machine, too much friction",[95,96,100],{"id":66,"by":67,"text":68},{"id":97,"by":98,"text":99},"21372149","miohtama","Could the workflow done so that you just copy-paste output from a PSQL shell to an online tool?",{"id":81,"by":67,"text":82},{"value":102,"source":63,"evidence":103},"Tool may not handle complex queries with CTEs and loops correctly",[104],{"id":105,"by":106,"text":107},"21374787","felixge","A tool like would be a wonderful addition to the PostgreSQL ecosystem! That being said, this tool won't work well for anything but trivial queries. PostgreSQL query plans have…",[109,114],{"value":110,"source":63,"evidence":111},"Simplify workflow, e.g. paste psql output directly or integrate into psql",[112,113],{"id":66,"by":67,"text":68},{"id":97,"by":98,"text":99},{"value":115,"source":63,"evidence":116},"Offer a web version or browser-based option",[117,121,125],{"id":118,"by":119,"text":120},"21372334","ken","Had this been implemented as a web service, half of the crowd would be asking for it to be an open-source program, so they could run it locally, for speed and flexibility and…",{"id":122,"by":123,"text":124},"21372453","Xylakant","> It was implemented as an open-source program, so half of the crowd are asking for it to be a web service for usability and convenience and aesthetics I’ll prefer that any time…",{"id":126,"by":127,"text":128},"21372845","londons_explore","A good number of github projects I find say \"Install with npm install foo, or try it out online [here]\" The online version can host the exact same code from git master. For many…",[130],{"value":131,"source":63,"evidence":132},"Does it handle CTE InitPlan steps correctly",[133,134],{"id":105,"by":106,"text":107},{"id":135,"by":11,"text":136},"21377778","Ya, I ran into problems with CTE InitPlan steps. However, I did do some extra work to have them display in the most correct way I could think of. I’ll add a CTE demo with and…",[138,143,147,151],{"value":139,"source":63,"evidence":140},"depesz explain analyzer",[141,142],{"id":81,"by":67,"text":82},{"id":105,"by":106,"text":107},{"value":144,"source":63,"evidence":145},"Taniyants postgres query plan visualization",[146],{"id":84,"by":85,"text":86},{"value":148,"source":63,"evidence":149},"PEV2",[150],{"id":88,"by":89,"text":90},{"value":152,"source":63,"evidence":153},"MySQL SHOW PROFILE",[154],{"id":155,"by":156,"text":157},"21372115","redis_mlc","MySQL (regular and NDB Cluster versions) has \"show profile\" built-in. It's not graphical, but has similar details. Love it!…",{"comments":18,"answered":40,"key":159},[160,161,164],{"id":135,"text":136},{"id":162,"text":163},"21372928","I built it as a CLI because of the reasons you mention, but also because I find that workflow most convenient for me and I didn’t want to need an internet connection.",{"id":165,"text":166},"21372236","If you run the psql client from your dev machine, there’s no need for step 2. Also, in practice I don’t save the output JSON to a file, I just pipe it directly to pg_flame. The…",{"commenters":168,"max_depth":169,"maker_replies":18,"first_comment_mins":170,"lifespan_hours":171},32,6,80,43,[173,176,178,181,184,188,191,194,196,199,202,204,206,208,210,211,215,219,221,222,223,225,227,228,229,232,235,238,241,244,245,248,251,254,255,258,261,264,267,271,274,277],[174,38,38,175,127,38],"21372761","other\u002Fneutral\u002Fidea",[177,38,38,175,127,38],"21372874",[179,38,38,175,180,38],"21373413","btown",[182,38,38,175,183,38],"21374328","cormacrelf",[185,38,38,186,187,38],"21375226","commenter\u002Fneutral\u002Fnone","JelteF",[189,38,38,186,190,38],"21375383","Bootvis",[192,38,38,186,193,38],"21374599","ako",[195,38,38,186,127,38],"21374963",[197,38,38,186,198,38],"21380208","antpls",[200,38,38,201,127,38],"21385113","other\u002Fneutral\u002Fperformance",[105,40,34,203,106,38],"project\u002Fmixed\u002Fexecution",[135,40,38,205,11,40],"maker\u002Fneutral\u002Fexecution",[66,33,34,207,67,38],"project\u002Fmixed\u002Fdesign",[97,33,34,209,98,38],"project\u002Fneutral\u002Fdesign",[81,33,34,209,67,38],[212,33,38,213,214,38],"21373470","other\u002Fneutral\u002Fnone","rc_mob",[216,33,38,217,218,38],"21374019","other\u002Fneutral\u002Fdocs","takeda",[118,33,38,220,119,38],"other\u002Fneutral\u002Fdesign",[122,33,34,209,123,38],[126,33,38,220,127,38],[162,33,38,224,11,40],"maker\u002Fneutral\u002Fdesign",[84,33,40,226,85,38],"project\u002Fcritical\u002Fdesign",[88,33,38,217,89,38],[165,33,38,224,11,40],[230,33,40,226,231,38],"21373828","CodeWriter23",[233,33,34,209,234,38],"21374553","davidjnelson",[236,33,38,186,237,38],"21375108","dbetteridge",[239,33,40,226,240,38],"21374868","hans_castorp",[242,33,38,186,243,38],"21375067","ldng",[51,33,38,224,11,40],[246,34,38,175,247,38],"21372893","tanelpoder",[249,34,38,250,11,40],"21381859","maker\u002Fneutral\u002Fdocs",[252,34,18,253,247,38],"21383819","maker\u002Fpositive\u002Fdocs",[155,32,38,213,156,38],[256,18,38,175,257,38],"21375451","rehemiau",[259,18,38,201,260,38],"21375578","ollysb",[262,18,38,175,263,38],"21375846","goatinaboat",[265,18,38,175,266,38],"21377500","ants_a",[268,169,18,269,270,38],"21386925","project\u002Fpositive\u002Fdesign","drej",[70,272,18,273,71,38],7,"project\u002Fpositive\u002Fidea",[74,275,18,276,75,38],8,"project\u002Fpositive\u002Fnone",[278,279,38,213,280,38],"21372604",9,"nvr219",[],[283,288,293,298,303,307],{"id":284,"name":285,"points":286,"category":287},"21394222","Karma",151,"productivity",{"id":289,"name":290,"points":291,"category":292},"21403091","Micro CRM",147,"web_saas",{"id":294,"name":295,"points":296,"category":297},"21391195","SlowTube",143,"creative",{"id":299,"name":300,"points":301,"category":302},"21351695","MNML",127,"games",{"id":304,"name":305,"points":306,"category":302},"21353123","Aim and Shoot",118,{"id":308,"name":309,"points":310,"category":311},"21343989","Passbox",110,"security_privacy",false,"v2",{"id":315,"name":5,"line":6,"ai":312,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":316,"top":18,"kw":317,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":318,"url":9,"mix":319,"praise":62,"objection":93,"sub":21},21371642,0.17,[24,25,26,27,28],"0000000000303330003010013010000500000555",[32,32,33,34],1794036582406]