Performance Profiling

Total processing time: 889 ms; Peak memory: 10.202 MB. Show Profiling Timeline

总计20条数据
TimeDurationCategoryInfo
  
15:46:12.41576.4 msyii\db\Command::querySELECT sum(c.erp_settle_amount) AS collected FROM (SELECT * FROM ((SELECT '1' || r.id::varchar as id, 1 as ticket_type, r.sales_contract_id as contract_id, r.amount as amount, t.created_at as collected_date, t.created_at, t.created_by, t.abstract as description FROM "a57be577deb434"."tbl_erp_collect_ticket_settles" "r" LEFT JOIN "a57be577deb434"."tbl_erp_collect_tickets" "t" ON r.erp_collect_ticket_id = t.id WHERE (r.sales_contract_id is not null) AND ("t"."status" IN (2, 5, 1))) UNION ALL ( SELECT '2' || r.id::varchar as id, 2 as ticket_type, r.sales_contract_id as contract_id, r.amount as amount, t.created_at as collected_date, t.created_at, t.created_by, t.abstract as description FROM "a57be577deb434"."tbl_erp_cash_cost_ticket_sales_contract_settles" "r" LEFT JOIN "a57be577deb434"."tbl_erp_cash_cost_tickets" "t" ON r.erp_cash_cost_ticket_id = t.id WHERE (r.sales_contract_id is not null) AND ("t"."status" IN (2, 5, 1)) ) UNION ALL ( SELECT '3' || r.id::varchar as id, 3 as ticket_type, r.sales_contract_id as contract_id, 0 - r.amount as amount, t.created_at as collected_date, t.created_at, t.created_by, t.abstract as description FROM "a57be577deb434"."tbl_erp_payment_ticket_settles" "r" LEFT JOIN "a57be577deb434"."tbl_erp_payment_tickets" "t" ON r.erp_payment_ticket_id = t.id WHERE (r.sales_contract_id is not null) AND ("t"."status" IN (2, 5, 1)) )) "sub") "scp" LEFT JOIN "a57be577deb434"."tbl_sales_contracts" "c" ON c.id = scp.contract_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON c.from_project = p.id WHERE ("p"."created_by" IN ('1004', '1005', '1013', '5087')) AND ("p"."project_status"=3) AND (scp.collected_date >= '2025-01-01 00:00:00' AND scp.collected_date < timestamp '2025-12-31 23:59:59' + interval '1 second')
15:46:12.50019.0 msyii\db\Command::querySELECT sum(sci.amount) AS invoices FROM "a57be577deb434"."tbl_sales_contract_invoices" "sci" LEFT JOIN "a57be577deb434"."tbl_sales_contracts" "c" ON c.id = sci.contract_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON c.project_id = p.id WHERE "p"."created_by" IN ('1004', '1005', '1013', '5087')
15:46:12.31018.8 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_groups' and ns.nspname='a57be577deb434' order by fns.nspname, fc.relname, a.attnum
15:46:12.33813.8 msyii\db\Command::querySELECT COUNT(*) FROM (SELECT DISTINCT c.id, c.client_class, cc.notice_days, extract(epoch from (now() - max(sl.end_at))) / 86400 as last_contact FROM "a57be577deb434"."tbl_clients" "c" LEFT JOIN "a57be577deb434"."tbl_client_classes" "cc" ON cc.id = c.client_class LEFT JOIN "a57be577deb434"."tbl_work_logs" "sl" ON sl.client_id = c.id and sl.is_draft = false WHERE ("c"."sales_rep" IN ('1004', '1005', '1013', '5087')) AND ("c"."deleted" = FALSE) GROUP BY "c"."id", "cc"."id") "sub" WHERE sub.last_contact > sub.notice_days
15:46:12.25913.1 msyii\db\Command::querySELECT "created_by" FROM "a57be577deb434"."tbl_projects" WHERE ("bargain_date" >= '2025-01-01 00:00:00') AND ("bargain_date" <= '2025-12-31 23:59:59') AND ("project_status"=3) AND ("created_by" NOT IN (5329, 5332, 5448, 5420, 1001, 5087, 5300, 5311, 5295, 1013, 1004, 1005, 5449)) GROUP BY "created_by"
15:46:12.2989.9 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_groups' and d.nspname = 'a57be577deb434' ORDER BY a.attnum;
15:46:12.2797.5 msyii\db\Command::querySELECT g.name, string_agg( sgr.sales_id::varchar, ',') AS list FROM "a57be577deb434"."tbl_groups" "g" LEFT JOIN "a57be577deb434"."tbl_sales_group_relationships" "sgr" ON sgr.group_id = g.id WHERE "sgr"."sales_id" IN (5329, 5332, 5448, 5420, 1001, 5087, 5300, 5311, 5295, 1013, 1004, 1005, 5449) GROUP BY "g"."name"
15:46:12.5256.6 msyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_visit_module_histories" WHERE ("user_id"=5250) AND ("object_type"=23) AND ("visit_date"='2025-08-04')
15:46:12.3555.6 msyii\db\Command::querySELECT sum(p.budget * p.profit_pct / 100) AS profits, sum(p.budget) AS currents, sum(p.collected) AS collected, sum(case when p.budget >= p.collected THEN p.budget - p.collected ELSE 0 END) AS un_collected, count(p.id) AS count_current FROM "a57be577deb434"."tbl_projects" "p" WHERE ("p"."created_by" IN ('1004', '1005', '1013', '5087')) AND ("p"."project_status"=3) AND (p.bargain_date >= '2025-01-01 00:00:00' AND p.bargain_date < timestamp '2025-12-31 23:59:59' + interval '1 second')
15:46:12.5325.5 msyii\db\Command::executeUPDATE "a57be577deb434"."tbl_visit_module_histories" SET "num"=7, "last_visit_at"='now()' WHERE "id"=54932
15:46:12.5194.3 msyii\db\Command::querySELECT sum(sub.invoices) as invoices FROM (SELECT sc.id, CASE WHEN sum(sci.amount) > sc.amount or sc.including_tax = false THEN 0 ELSE sc.amount - (CASE WHEN SUM ( sci.amount ) IS NOT NULL THEN SUM ( sci.amount ) ELSE 0 END) END as invoices FROM "a57be577deb434"."tbl_sales_contracts" "sc" LEFT JOIN "a57be577deb434"."tbl_sales_contract_invoices" "sci" ON sc.id = sci.contract_id LEFT JOIN "a57be577deb434"."tbl_projects" "p" ON sc.project_id = p.id WHERE ("p"."created_by" IN ('1004', '1005', '1013', '5087')) AND ("sc"."including_tax"=TRUE) GROUP BY "sc"."id") "sub"
15:46:12.2283.6 msyii\db\Connection::openOpening DB connection: pgsql:host=postgresql.server.local;port=5432;dbname=beta
15:46:12.2313.4 msyii\db\Command::querySELECT * FROM "global"."vw_user_login" WHERE "id"=5250
15:46:12.3332.8 msyii\db\Command::querySELECT count(id) AS count FROM "a57be577deb434"."tbl_clients" WHERE "sales_rep" IN ('1004', '1005', '1013', '5087')
15:46:12.2372.6 msyii\db\Command::querySELECT * FROM "a57be577deb434"."tbl_users" WHERE "id"=5250
15:46:12.2502.5 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"='AccountManager') AND (((start_from < end_at) or end_at is null)) AND (tsrange(start_from::TIMESTAMP, end_at::TIMESTAMP, '[)') && '[2025-01-01 00:00:00, 2025-12-31 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
15:46:12.4952.4 msyii\db\Command::querySELECT count(*) as count, sum(budget) as sum, sum(budget * profit_pct / 100) AS profits, "project_status" FROM (SELECT budget, profit_pct, CASE WHEN project_status = 3 and budget <= collected THEN 0 WHEN project_status = 3 and budget > collected THEN 3 ELSE project_status END as project_status FROM "a57be577deb434"."tbl_projects" "p" WHERE "p"."created_by" IN ('1004', '1005', '1013', '5087')) "sub" GROUP BY "project_status"
15:46:12.4931.5 msyii\db\Command::querySELECT sum(case when p.budget >= p.collected THEN p.budget - p.collected ELSE 0 END) AS un_collected FROM "a57be577deb434"."tbl_projects" "p" WHERE ("p"."created_by" IN ('1004', '1005', '1013', '5087')) AND ("p"."project_status"=3)
15:46:12.5381.4 msyii\db\Command::queryINSERT INTO "global"."tbl_api_log" ("code", "schema", "user_id", "device_type", "url", "request", "response", "php_error", "time") VALUES (200, 'a57be577deb434', 5250, 5, 'vue/analysis/sales-counts', '{"period":"today","period2":"currentfascalyear","status":"","dataUserId":"1004,1005,1013,5087","GroupId":"80","alert":"false","web_access_token":"whZjM8ZfyqxulYW-_i5kn1yK2K5nH7iz"}', '{"code":2000,"result":{"counts":[{"name":"\u5f53\u524d\u9690\u6027\u9700\u6c42","key":"status1","value":13,"unit":"\u4e2a","valueEx":726.75,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u5f53\u524d\u660e\u786e\u9700\u6c42","key":"status2","value":14,"unit":"\u4e2a","valueEx":1093.71,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u672c\u8d22\u5e74\u6210\u4ea4\u91d1\u989d","key":"journal_account_accomplished","value":30,"unit":"\u4e2a","valueEx":1307.18,"unitEx":"\u4e07","color":"#649fd7","link":{}},{"name":"\u672c\u8d22\u5e74\u5229\u6da6","key":"profit_accomplished","value":30,"unit":"\u4e2a","valueEx":357.74,"unitEx":"\u4e07","color":"#649fd7","link":{}},{"name":"\u672c\u8d22\u5e74\u5df2\u6536\u6b3e\u91d1\u989d","key":"collected","value":2993.5,"unit":"\u4e07","valueEx":"","unitEx":"","color":"#649fd7","link":{}},{"name":"\u672a\u6536\u6b3e\u91d1\u989d","key":"un_collected","value":1148.97,"unit":"\u4e07","valueEx":"","unitEx":"","color":"#649fd7","link":{}},{"name":"\u5ba2\u6237\u6570\u91cf\/\u8d85\u671f\u672a\u8054\u7cfb","key":"total_client_number","value":382,"unit":933,"valueEx":36,"unitEx":"\u4e2a","color":"#98c450","link":{"url":"client","filter":[{"key":"ClientSearch[sales_rep]","value":""}]}},{"name":"\u5df2\u5f00\/\u672a\u5f00\u53d1\u7968\u91d1\u989d","key":"invoices","value":18929.56,"unit":"\u4e07","valueEx":943.94,"unitEx":"\u4e07","color":"#e75a4a","link":{"url":"client","filter":[{"key":"ClientSearch[sales_rep]","value":""}]}},{"name":"\u7d2f\u8ba1\u6210\u4ea4\u91d1\u989d","key":"status3","value":507,"unit":"\u4e2a","valueEx":19653.15,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u6210\u4ea4\u5229\u6da6","key":"status3","value":507,"unit":"\u4e2a","valueEx":4992.21,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u5931\u8d25\u91d1\u989d","key":"status4","value":126,"unit":"\u4e2a","valueEx":7339.51,"unitEx":"\u4e07","color":"#98c450","link":{}},{"name":"\u7d2f\u8ba1\u6401\u7f6e\u91d1\u989d","key":"status5","value":182,"unit":"\u4e2a","valueEx":11112.65,"unitEx":"\u4e07","color":"#98c450","link":{}}]},"status":1,"msg":[{"name":"success","success":"\u6210\u529f\u83b7\u53d6\u6570\u636e","error":""}],"mod":0}', FALSE, '2025-08-04 15:46:12') RETURNING "id"
15:46:12.3360.9 msyii\db\Command::querySELECT count(id) AS count FROM "a57be577deb434"."tbl_clients" WHERE sales_rep is null