Performance Profiling

Total processing time: 86 ms; Peak memory: 5.178 MB. Show Profiling Timeline

总计22条数据
TimeDurationCategoryInfo
  
17:14:05.28516.5 msyii\db\Command::queryselect ct.conname as constraint_name, a.attname as column_name, fc.relname as foreign_table_name, fns.nspname as foreign_table_schema, fa.attname as foreign_column_name from (SELECT ct.conname, ct.conrelid, ct.confrelid, ct.conkey, ct.contype, ct.confkey, generate_subscripts(ct.conkey, 1) AS s FROM pg_constraint ct ) AS ct inner join pg_class c on c.oid=ct.conrelid inner join pg_namespace ns on c.relnamespace=ns.oid inner join pg_attribute a on a.attrelid=ct.conrelid and a.attnum = ct.conkey[ct.s] left join pg_class fc on fc.oid=ct.confrelid left join pg_namespace fns on fc.relnamespace=fns.oid left join pg_attribute fa on fa.attrelid=ct.confrelid and fa.attnum = ct.confkey[ct.s] where ct.contype='f' and c.relname='tbl_pre_sales' and ns.nspname='a57be577deb434' order by fns.nspname, fc.relname, a.attnum
17:14:05.3207.3 msyii\db\Command::querySELECT avg(satisfaction_score) AS s_score, avg(skill_score) AS t_score FROM "a57be577deb434"."tbl_callback_records" "cr" LEFT JOIN (SELECT c.* FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN "a57be577deb434"."tbl_case_services" "cs" ON cs.case_id = c.id GROUP BY "c"."id") "c" ON cr.case_id = c.id WHERE ("c"."last_engineer"='1001') AND ("c"."case_type"=1) AND ("c"."case_status"=5) AND (satisfaction_score != 0 OR skill_score != 0) AND (cr.callback_date >= '20250101 00:00:00' AND cr.callback_date < timestamp '20251231 23:59:59' + interval '1 second')
17:14:05.3036.1 msyii\db\Command::querySELECT sum(ca.points) as points FROM "a57be577deb434"."tbl_case_assignments" "ca" LEFT JOIN (SELECT c.* FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN "a57be577deb434"."tbl_case_services" "cs" ON cs.case_id = c.id GROUP BY "c"."id") "c" ON ca.case_id = c.id WHERE ("c"."case_type"=1) AND ("c"."closed_at" >= '20250101 00:00:00') AND ("c"."closed_at" <= '20251231 23:59:59') AND ("ca"."engineer_id"='1001')
17:14:05.2804.7 msyii\db\Command::querySELECT d.nspname AS table_schema, c.relname AS table_name, a.attname AS column_name, t.typname AS data_type, a.attlen AS character_maximum_length, pg_catalog.col_description(c.oid, a.attnum) AS column_comment, a.atttypmod AS modifier, a.attnotnull = false AS is_nullable, CAST(pg_get_expr(ad.adbin, ad.adrelid) AS varchar) AS column_default, coalesce(pg_get_expr(ad.adbin, ad.adrelid) ~ 'nextval',false) AS is_autoinc, array_to_string((select array_agg(enumlabel) from pg_enum where enumtypid=a.atttypid)::varchar[],',') as enum_values, CASE atttypid WHEN 21 /*int2*/ THEN 16 WHEN 23 /*int4*/ THEN 32 WHEN 20 /*int8*/ THEN 64 WHEN 1700 /*numeric*/ THEN CASE WHEN atttypmod = -1 THEN null ELSE ((atttypmod - 4) >> 16) & 65535 END WHEN 700 /*float4*/ THEN 24 /*FLT_MANT_DIG*/ WHEN 701 /*float8*/ THEN 53 /*DBL_MANT_DIG*/ ELSE null END AS numeric_precision, CASE WHEN atttypid IN (21, 23, 20) THEN 0 WHEN atttypid IN (1700) THEN CASE WHEN atttypmod = -1 THEN null ELSE (atttypmod - 4) & 65535 END ELSE null END AS numeric_scale, CAST( information_schema._pg_char_max_length(information_schema._pg_truetypid(a, t), information_schema._pg_truetypmod(a, t)) AS numeric ) AS size, a.attnum = any (ct.conkey) as is_pkey FROM pg_class c LEFT JOIN pg_attribute a ON a.attrelid = c.oid LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum LEFT JOIN pg_type t ON a.atttypid = t.oid LEFT JOIN pg_namespace d ON d.oid = c.relnamespace LEFT join pg_constraint ct on ct.conrelid=c.oid and ct.contype='p' WHERE a.attnum > 0 and t.typname != '' and c.relname = 'tbl_pre_sales' and d.nspname = 'a57be577deb434' ORDER BY a.attnum;
17:14:05.3343.9 msyii\db\Command::querySELECT u.id, name, e_implement_count, e_budget_count, e_profit_count, e_client_count, e_project_count, e_point_count, (CASE WHEN esb.e_implement_base > 0 THEN floor(u.e_implement_count * 20 / esb.e_implement_base) ELSE 0 END) as e_implement_score, (CASE WHEN esb.e_budget_base > 0 THEN floor(u.e_budget_count * 20 / esb.e_budget_base) ELSE 0 END) as e_budget_score, (CASE WHEN esb.e_profit_base > 0 THEN floor(u.e_profit_count * 15 / esb.e_profit_base) ELSE 0 END) as e_profit_score, (CASE WHEN esb.e_client_base > 0 THEN floor(u.e_client_count * 15 / esb.e_client_base) ELSE 0 END) as e_client_score, (CASE WHEN esb.e_project_base > 0 THEN floor(u.e_project_count * 15 / esb.e_project_base) ELSE 0 END) as e_project_score, (CASE WHEN esb.e_point_base > 0 THEN floor(u.e_point_count * 15 / esb.e_point_base) ELSE 0 END) as e_point_score, ( (CASE WHEN esb.e_implement_base > 0 THEN floor(u.e_implement_count * 20 / esb.e_implement_base) ELSE 0 END) + (CASE WHEN esb.e_budget_base > 0 THEN floor(u.e_budget_count * 20 / esb.e_budget_base) ELSE 0 END) + (CASE WHEN esb.e_profit_base > 0 THEN floor(u.e_profit_count * 15 / esb.e_profit_base) ELSE 0 END) + (CASE WHEN esb.e_client_base > 0 THEN floor(u.e_client_count * 15 / esb.e_client_base) ELSE 0 END) + (CASE WHEN esb.e_project_base > 0 THEN floor(u.e_project_count * 15 / esb.e_project_base) ELSE 0 END) + (CASE WHEN esb.e_point_base > 0 THEN floor(u.e_point_count * 15 / esb.e_point_base) ELSE 0 END) ) as score FROM "a57be577deb434"."tbl_users" "u" LEFT JOIN "a57be577deb434"."tbl_auth_assignments" "aa" ON u.id = aa.user_id LEFT JOIN "a57be577deb434"."tbl_engineer_score_bases" "esb" ON 1 = 1 WHERE ("u"."user_status"=1) AND ("u"."id"='1001') AND ("aa"."item_name"='Engineer') GROUP BY "u"."id", "esb"."id"
17:14:05.3133.8 msyii\db\Command::querySELECT count(c.id) AS new_contact FROM "a57be577deb434"."tbl_contacts" "c" LEFT JOIN "a57be577deb434"."tbl_clients" "client" ON client.id = c.id WHERE ("c"."created_by"='1001') AND ("c"."created_by" IN (1017, 5085, 1001, 5248, 1015, 1022, 5296, 1023)) AND (("c"."created_at" >= '20250101 00:00:00') AND ("c"."created_at" <= '20251231 23:59:59')) AND ("c"."contact_type"='1')
17:14:05.3393.6 msyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_visit_module_histories" WHERE ("user_id"=1001) AND ("object_type"=23) AND ("visit_date"='2025-08-08')
17:14:05.3283.3 msyii\db\Command::querySELECT product_type_id, name, count(it.id) as value FROM "a57be577deb434"."tbl_pre_sales_product_types" "it" WHERE "pre_sales_id" IN (SELECT "ps"."id" FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by"='1001') AND (("ps"."created_at" >= '2025-01-01 00:00:00') AND ("ps"."created_at" <= '2025-12-31 23:59:59')) AND ("is_draft"=FALSE)) GROUP BY "product_type_id", "name"
17:14:05.2642.2 msyii\db\Command::querySELECT * FROM "global"."vw_user_login" WHERE "id"=1001
17:14:05.3172.2 msyii\db\Command::querySELECT sum(ca.points) as points FROM "a57be577deb434"."tbl_case_assignments" "ca" LEFT JOIN (SELECT c.* FROM "a57be577deb434"."tbl_cases" "c" LEFT JOIN "a57be577deb434"."tbl_case_services" "cs" ON cs.case_id = c.id GROUP BY "c"."id") "c" ON ca.case_id = c.id WHERE ("c"."case_type"=1) AND ("c"."closed_at" >= '20250101 00:00:00') AND ("c"."closed_at" <= '20251231 23:59:59') AND ("ca"."engineer_id"='1001') AND (c.deduct_points_from is null)
17:14:05.2621.9 msyii\db\Connection::openOpening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta
17:14:05.2741.8 msyii\db\Command::querySELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250101 00:00:00, 20251231 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY pinyin1 nulls first, namecut1 nulls first, pinyin2 nulls first, namecut2 nulls first, pinyin3 nulls first, namecut3 nulls first, pinyin4 nulls first, namecut4 nulls first
17:14:05.2681.5 msyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=1001
17:14:05.2761.5 msyii\db\Command::querySELECT sum(p.budget * p.profit_pct / 100 * sub.contribution) AS profits, sum(p.budget * sub.contribution) AS currents, count(p.id) AS projects FROM "a57be577deb434"."tbl_projects" "p" LEFT JOIN (SELECT pas.project_id, sum(pas.contribution) AS contribution FROM "a57be577deb434"."tbl_project_architects" "pas" WHERE ("pas"."engineer_id"='1001') AND ("pas"."engineer_id" IN (1017, 5085, 1001, 5248, 1015, 1022, 5296, 1023)) GROUP BY "pas"."project_id") "sub" ON p.id = sub.project_id WHERE ("p"."project_status"=3) AND (sub.contribution is not null) AND (p.bargain_date >= '20250101 00:00:00' AND p.bargain_date < timestamp '20251231 23:59:59' + interval '1 second')
17:14:05.2791.2 msyii\db\Command::querySELECT count(ps.id) AS times, sum(ps.end_at - ps.start_at) AS hours, avg(ps.end_at - ps.start_at) AS avg_hours FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by"='1001') AND ("ps"."created_by" IN (1017, 5085, 1001, 5248, 1015, 1022, 5296, 1023)) AND (ps.start_at >= '20250101 00:00:00' AND ps.start_at < timestamp '20251231 23:59:59' + interval '1 second') AND ("ps"."is_draft"=FALSE)
17:14:05.3441.1 msyii\db\Command::queryINSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "url", "request", "response", "php_error", "time") VALUES (200, 'a57be577deb434', 1001, 5, 'vue/analysis/pre-sales-counts', '{"dataUserId":["1001"],"period":"currentfascalyear","alert":"false","web_access_token":"0Bjt7zsA4RpFpNhApjLlKpy587hFcKCO"}', '{"code":2000,"result":{"list":[{"name":"\u52a9\u653b\u6d41\u6c34","key":"journal_account_assisted","value":0,"unit":"\u5143","color":"#98c450","link":{}},{"name":"\u52a9\u653b\u5229\u6da6","key":"profit_assisted","value":0,"unit":"\u5143","color":"#98c450","link":{}},{"name":"\u552e\u524d\u6210\u4ea4\u5546\u673a\u6570","key":"success_pre_sales_times","value":0,"unit":"\u4e2a","color":"#98c450","link":{}},{"name":"\u552e\u524d\u7528\u65f6","key":"individual_pre_sales_time","value":0,"unit":"\u5c0f\u65f6","color":"#98c450","link":{}},{"name":"\u552e\u524d\u6b21\u6570","key":"pre_sales_times","value":0,"unit":"\u6b21","color":"#98c450","link":{}},{"name":"\u5de5\u5206","key":"gain_points","value":0,"unit":"\u5206","color":"#98c450","link":{}},{"name":"\u4e2a\u4eba\u5e73\u5747\u552e\u524d\u7528\u65f6","key":"average_pre_sales_time","value":0,"unit":"\u5c0f\u65f6\/\u6b21","color":"#98c450","link":{}},{"name":"\u56e2\u961f\u5e73\u5747\u552e\u524d\u7528\u65f6","key":"average_all_pre_sales_time","value":2.66,"unit":"\u5c0f\u65f6\/\u6b21","color":"#98c450","link":{}},{"name":"\u5e73\u5747\u5de5\u7a0b\u5e08\u6280\u80fd\u5f97\u5206","key":"average_skill_score","value":"0\/10","unit":"\u5206","color":"#98c450","link":{}},{"name":"\u6574\u4f53\u5e73\u5747\u6ee1\u610f\u5ea6\u5f97\u5206","key":"average_satisfaction_score","value":"0\/10","unit":"\u5206","color":"#98c450","link":{}},{"name":"\u65b0\u589e\u8054\u7cfb\u4eba","key":"new_contacts","value":1,"unit":"\u4e2a","color":"#98c450","link":{}},{"name":"\u670d\u52a1\u516c\u6d77\u5ba2\u6237\u5de5\u5206","key":"public_gain_points","value":0,"unit":"\u5206","color":"#98c450","link":{}}],"chart":[],"score":"","serviceChart":[]},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0}', FALSE, '2025-08-08 17:14:05') RETURNING "id"
17:14:05.3320.9 msyii\db\Command::querySELECT "s"."id", "s"."title" AS "name", count(ps.id) as value FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_services" "s" ON ps.service_id = s.id LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by"='1001') AND (("ps"."created_at" >= '2025-01-01 00:00:00') AND ("ps"."created_at" <= '2025-12-31 23:59:59')) AND ("is_draft"=FALSE) GROUP BY "s"."id"
17:14:05.3430.8 msyii\db\Command::executeUPDATE "a57be577deb434"."tbl_visit_module_histories" SET "num"=16, "last_visit_at"='now()' WHERE "id"=54993
17:14:05.3090.7 msyii\db\Command::querySELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250101 00:00:00, 20251231 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY pinyin1 nulls first, namecut1 nulls first, pinyin2 nulls first, namecut2 nulls first, pinyin3 nulls first, namecut3 nulls first, pinyin4 nulls first, namecut4 nulls first
17:14:05.3100.7 msyii\db\Command::querySELECT avg(ps.end_at - ps.start_at) AS avg_hours FROM "a57be577deb434"."tbl_pre_sales" "ps" LEFT JOIN "a57be577deb434"."tbl_cases" "c" ON ps.case_id = c.id WHERE ("ps"."created_by" IN (1017, 5085, 1001, 5248, 1015, 1022, 5296, 1023)) AND (ps.start_at >= '20250101 00:00:00' AND ps.start_at < timestamp '20251231 23:59:59' + interval '1 second') AND ("ps"."is_draft"=FALSE)
17:14:05.3120.7 msyii\db\Command::querySELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250101 00:00:00, 20251231 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY pinyin1 nulls first, namecut1 nulls first, pinyin2 nulls first, namecut2 nulls first, pinyin3 nulls first, namecut3 nulls first, pinyin4 nulls first, namecut4 nulls first
17:14:05.2780.7 msyii\db\Command::querySELECT "user_id" FROM "a57be577deb434"."tbl_user_role_change_logs" "urcl" LEFT JOIN "a57be577deb434"."tbl_users" "u" ON urcl.user_id = u.id WHERE ("role_name"='Engineer') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[20250101 00:00:00, 20251231 23:59:59]'::tsrange) GROUP BY "user_id", "pinyin1", "namecut1", "pinyin2", "namecut2", "pinyin3", "namecut3", "pinyin4", "namecut4" ORDER BY pinyin1 nulls first, namecut1 nulls first, pinyin2 nulls first, namecut2 nulls first, pinyin3 nulls first, namecut3 nulls first, pinyin4 nulls first, namecut4 nulls first