PgHero
No long running queries
Connections healthy 36
Vacuuming healthy
No columns near integer overflow
No invalid indexes or constraints
5 duplicate indexes
1 suggested index
26 slow queries

Duplicate Indexes

These indexes exist, but aren’t needed. Remove them for faster writes.

rails generate migration remove_unneeded_indexes

And paste

remove_index :account_account, name: "account_account_code_index", column: :code
remove_index :account_analytic_account, name: "account_analytic_account_code_index", column: :code
remove_index :crm_lead, name: "crm_lead_user_id_index", column: :user_id
remove_index :hr_job, name: "hr_job_name_index", column: :name
remove_index :stock_picking, name: "stock_picking_name_index", column: :name
Details
On account_account
account_account_code_index (code)
is covered by
account_account_code_company_uniq (code, company_id)
On account_analytic_account
account_analytic_account_code_index (code)
is covered by
account_analytic_account_project_task_unique_code (code)
On crm_lead
crm_lead_user_id_index (user_id)
is covered by
crm_lead_user_id_team_id_type_index (user_id, team_id, type)
On hr_job
hr_job_name_index (name)
is covered by
hr_job_name_company_uniq (name, company_id, department_id)
On stock_picking
stock_picking_name_index (name)
is covered by
stock_picking_name_uniq (name, company_id)

Suggested Indexes

Add indexes to speed up queries.

rails generate migration add_suggested_indexes

And paste

commit_db_transaction
add_index :ir_attachment, [:key], algorithm: :concurrently

Details
CREATE INDEX CONCURRENTLY ON ir_attachment (key)
Rows: 780657
Row progression: 780657, 0

Row estimates
- key (=): 0
- public (=): 6128
- website_id (=): 19751
- res_field (null): 434722
- id (sort): 1

Existing indexes
- id PRIMARY
- checksum
- original_id
- res_model, res_id
- url
- url gist_trgm_ops GIST

to speed up

Total Time Average Time Calls
2 min < 0.1% 1,706 ms 63 odoo
SELECT "ir_attachment".id FROM "ir_attachment" WHERE ((("ir_attachment"."res_field" IS NULL  AND ("ir_attachment"."key" = $1)) AND ("ir_attachment"."website_id" = $2)) AND ("ir_attachment"."public" = $3)) ORDER BY  "ir_attachment"."id" DESC

Slow Queries

Slow queries take 20 ms or more on average and have been called at least 100 times.

Explain queries to see where to add indexes.

Total Time Average Time Calls
174 min 9% 24 ms 436,920 odoo
SELECT "mail_followers".id FROM "mail_followers" WHERE (("mail_followers"."res_model" = $1) AND ("mail_followers"."partner_id" in (SELECT "res_partner".id FROM "res_partner" WHERE (("res_partner"."active" = $2) AND ("res_partner"."id" in ($3)))))) ORDER BY  "mail_followers"."id"
110 min 6% 60 ms 110,124 odoo
SELECT "account_move".id FROM "account_move" WHERE (("account_move"."ref"::text like $1) AND ("account_move"."company_id" = $2)) AND (("account_move"."company_id" IS NULL  OR ("account_move"."company_id" in ($3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21))) AND (((("account_move"."company_id" IS NULL  OR ("account_move"."company_id" in ($22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40))) OR (("account_move"."move_type" in ($41,$42,$43,$44,$45)) AND (("account_move"."invoice_user_id" = $46) OR "account_move"."invoice_user_id" IS NULL ))) OR (("account_move"."move_type" in ($47,$48,$49,$50,$51)) AND ((("account_move"."team_id" in (SELECT "crm_team".id FROM "crm_team" WHERE ("crm_team"."id" IN (SELECT "sale_team_id" FROM "res_users" WHERE "id" IN ($52) AND "sale_team_id" IS NOT NULL)))) OR ("account_move"."team_id" in (SELECT "crm_team".id FROM "crm_team" WHERE ("crm_team"."id" not in (SELECT "sale_team_id" FROM "res_users" WHERE "sale_team_id" IS NOT NULL))))) OR $53))) OR ("account_move"."move_type" in ($54,$55,$56)))) ORDER BY  "account_move"."date" DESC,"account_move"."name" DESC,"account_move"."id" DESC
73 min 4% 21 ms 210,918 odoo
SELECT "mail_followers".id FROM "mail_followers" WHERE (("mail_followers"."res_model" = $1) AND ("mail_followers"."partner_id" in (SELECT "res_partner".id FROM "res_partner" WHERE ("res_partner"."id" in ($2))))) ORDER BY  "mail_followers"."id"
57 min 3% 60 ms 56,973 odoo
SELECT "res_partner".id FROM "res_partner" WHERE ("res_partner"."id" in ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$100,$101,$102,$103,$104,$105,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,$117,$118,$119,$120,$121,$122,$123,$124,$125,$126,$127,$128,$129,$130,$131,$132,$133,$134,$135,$136,$137,$138,$139,$140,$141,$142,$143,$144,$145,$146,$147,$148,$149,$150,$151,$152,$153,$154,$155,$156,$157,$158,$159,$160,$161,$162,$163,$164,$165,$166,$167,$168,$169,$170,$171,$172,$173,$174,$175,$176,$177,$178,$179,$180,$181,$182,$183,$184,$185,$186,$187,$188,$189,$190,$191,$192,$193,$194,$195,$196,$197,$198,$199,$200,$201,$202,$203,$204,$205,$206,$207,$208,$209,$210,$211,$212,$213,$214,$215,$216,$217,$218,$219,$220,$221,$222,$223,$224,$225,$226,$227,$228,$229,$230,$231,$232,$233,$234,$235,$236,$237,$238,$239,$240,$241,$242,$243,$244,$245,$246,$247,$248,$249,$250,$251,$252,$253,$254,$255,$256,$257,$258,$259,$260,$261,$262,$263,$264,$265,$266,$267,$268,$269,$270,$271,$272,$273,$274,$275,$276,$277,$278,$279,$280,$281,$282,$283,$284,$285,$286,$287,$288,$289,$290,$291,$292,$293,$294,$295,$296,$297,$298,$299,$300,$301,$302,$303,$304,$305,$306,$307,$308,$309,$310,$311,$312,$313,$314,$315,$316,$317,$318,$319,$320,$321,$322,$323,$324,$325,$326,$327,$328,$329,$330,$331,$332,$333,$334,$335,$336,$337,$338,$339,$340,$341,$342,$343,$344,$345,$346,$347,$348,$349,$350,$351,$352,$353,$354,$355,$356,$357,$358,$359,$360,$361,$362,$363,$364,$365,$366,$367,$368,$369,$370,$371,$372,$373,$374,$375,$376,$377,$378,$379,$380,$381,$382,$383,$384,$385,$386,$387,$388,$389,$390,$391,$392,$393,$394,$395,$396,$397,$398,$399,$400,$401,$402,$403,$404,$405,$406,$407,$408,$409,$410,$411,$412,$413,$414,$415,$416,$417,$418,$419,$420,$421,$422,$423,$424,$425,$426,$427,$428,$429,$430,$431,$432,$433,$434,$435,$436,$437,$438,$439,$440,$441,$442,$443,$444,$445,$446,$447,$448,$449,$450,$451,$452,$453,$454,$455,$456,$457,$458,$459,$460,$461,$462,$463,$464,$465,$466,$467,$468,$469,$470,$471,$472,$473,$474,$475,$476,$477,$478,$479,$480,$481,$482,$483,$484,$485,$486,$487,$488,$489,$490,$491,$492,$493,$494,$495,$496,$497,$498,$499,$500,$501,$502,$503,$504,$505,$506,$507,$508,$509,$510,$511,$512,$513,$514,$515,$516,$517,$518,$519,$520,$521,$522,$523,$524,$525,$526,$527,$528,$529,$530,$531,$532,$533,$534,$535,$536,$537,$538,$539,$540,$541,$542,$543,$544,$545,$546,$547,$548,$549,$550,$551,$552,$553,$554,$555,$556,$557,$558,$559,$560,$561,$562,$563,$564,$565,$566,$567,$568,$569,$570,$571,$572,$573,$574,$575,$576,$577,$578,$579,$580,$581,$582,$583,$584,$585,$586,$587,$588,$589,$590,$591,$592,$593,$594,$595,$596,$597,$598,$599,$600,$601,$602,$603,$604,$605,$606,$607,$608,$609,$610,$611,$612,$613,$614,$615,$616,$617,$618,$619,$620,$621,$622,$623,$624,$625,$626,$627,$628,$629,$630,$631,$632,$633,$634,$635,$636,$637,$638,$639,$640,$641,$642,$643,$644,$645,$646,$647,$648,$649,$650,$651,$652,$653,$654,$655,$656,$657,$658,$659,$660,$661,$662,$663,$664,$665,$666,$667,$668,$669,$670,$671,$672,$673,$674,$675,$676,$677,$678,$679,$680,$681,$682,$683,$684,$685,$686,$687,$688,$689,$690,$691,$692,$693,$694,$695,$696,$697,$698,$699,$700,$701,$702,$703,$704,$705,$706,$707,$708,$709,$710,$711,$712,$713,$714,$715,$716,$717,$718,$719,$720,$721,$722,$723,$724,$725,$726,$727,$728,$729,$730,$731,$732,$733,$734,$735,$736,$737,$738,$739,$740,$741,$742,$743,$744,$745,$746,$747,$748,$749,$750,$751,$752,$753,$754,$755,$756,$757,$758,$759,$760,$761,$762,$763,$764,$765,$766,$767,$768,$769,$770,$771,$772,$773,$774,$775,$776,$777,$778,$779,$780,$781,$782,$783,$784,$785,$786,$787,$788,$789,$790,$791,$792,$793,$794,$795,$796,$797,$798,$799,$800,$801,$802,$803,$804,$805,$806,$807,$808,$809,$810,$811,$812,$813,$814,$815,$816,$817,$818,$819,$820,$821,$822,$823,$824,$825,$826,$827,$828,$829,$830,$831,$832,$833,$834,$835,$836,$837,$838,$839,$840,$841,$842,$843,$844,$845,$846,$847,$848,$849,$850,$851,$852,$853,$854,$855,$856,$857,$858,$859,$860,$861,$862,$863,$864,$865,$866,$867,$868,$869,$870,$871,$872,$873,$874,$875,$876,$877,$878,$879,$880,$881,$882,$883,$884,$885,$886,$887,$888,$889,$890,$891,$892,$893,$894,$895,$896,$897,$898,$899,$900,$901,$902,$903,$904,$905,$906,$907,$908,$909,$910,$911,$912,$913,$914,$915,$916,$917,$918,$919,$920,$921,$922,$923,$924,$925,$926,$927,$928,$929,$930,$931,$932,$933,$934,$935,$936,$937,$938,$939,$940,$941,$942,$943,$944,$945,$946,$947,$948,$949,$950,$951,$952,$953,$954,$955,$956,$957,$958,$959,$960,$961,$962,$963,$964,$965,$966,$967,$968,$969,$970,$971,$972,$973,$974,$975,$976,$977,$978,$979,$980,$981,$982,$983,$984,$985,$986,$987,$988,$989,$990,$991,$992,$993,$994,$995,$996,$997,$998,$999,$1000,$1001,$1002,$1003,$1004,$1005,$1006,$1007,$1008,$1009,$1010,$1011,$1012,$1013,$1014,$1015,$1016,$1017,$1018,$1019,$1020,$1021,$1022,$1023,$1024,$1025,$1026,$1027,$1028,$1029,$1030,$1031,$1032,$1033,$1034,$1035,$1036,$1037,$1038,$1039,$1040,$1041,$1042,$1043,$1044,$1045,$1046,$1047,$1048,$1049,$1050,$1051,$1052,$1053,$1054,$1055,$1056,$1057,$1058,$1059,$1060,$1061,$1062,$1063,$1064,$1065,$1066,$1067,$1068,$1069,$1070,$1071,$1072,$1073,$1074,$1075,$1076,$1077,$1078,$1079,$1080,$1081,$1082,$1083,$1084,$1085,$1086,$1087,$1088,$1089,$1090,$1091,$1092,$1093,$1094,$1095,$1096,$1097,$1098,$1099,$1100,$1101,$1102,$1103,$1104,$1105,$1106,$1107,$1108,$1109,$1110,$1111,$1112,$1113,$1114,$1115,$1116,$1117,$1118,$1119,$1120,$1121,$1122,$1123,$1124,$1125,$1126,$1127,$1128,$1129,$1130,$1131,$1132,$1133,$1134,$1135,$1136,$1137,$1138,$1139,$1140,$1141,$1142,$1143,$1144,$1145,$1146,$1147,$1148,$1149,$1150,$1151,$1152,$1153,$1154,$1155,$1156,$1157,$1158,$1159,$1160,$1161,$1162,$1163,$1164,$1165,$1166,$1167,$1168,$1169,$1170,$1171,$1172,$1173,$1174,$1175,$1176,$1177,$1178,$1179,$1180,$1181,$1182,$1183,$1184,$1185,$1186,$1187,$1188,$1189,$1190,$1191,$1192,$1193,$1194,$1195,$1196,$1197,$1198,$1199,$1200,$1201,$1202,$1203,$1204,$1205,$1206,$1207,$1208,$1209,$1210,$1211,$1212,$1213,$1214,$1215,$1216,$1217,$1218,$1219,$1220,$1221,$1222,$1223,$1224,$1225,$1226,$1227,$1228,$1229,$1230,$1231,$1232,$1233,$1234,$1235,$1236,$1237,$1238,$1239,$1240,$1241,$1242,$1243,$1244,$1245,$1246,$1247,$1248,$1249,$1250,$1251,$1252,$1253,$1254,$1255,$1256,$1257,$1258,$1259,$1260,$1261,$1262,$1263,$1264,$1265,$1266,$1267,$1268,$1269,$1270,$1271,$1272,$1273,$1274,$1275,$1276,$1277,$1278,$1279,$1280,$1281,$1282,$1283,$1284,$1285,$1286,$1287,$1288,$1289,$1290,$1291,$1292,$1293,$1294,$1295,$1296,$1297,$1298,$1299,$1300,$1301,$1302,$1303,$1304,$1305,$1306,$1307,$1308,$1309,$1310,$1311,$1312,$1313,$1314,$1315,$1316,$1317,$1318,$1319,$1320,$1321,$1322,$1323,$1324,$1325,$1326,$1327,$1328,$1329,$1330,$1331,$1332,$1333,$1334,$1335,$1336,$1337,$1338,$1339,$1340,$1341,$1342,$1343,$1344,$1345,$1346,$1347,$1348,$1349,$1350,$1351,$1352,$1353,$1354,$1355,$1356,$1357,$1358,$1359,$1360,$1361,$1362,$1363,$1364,$1365,$1366,$1367,$1368,$1369,$1370,$1371,$1372,$1373,$1374,$1375,$1376,$1377,$1378,$1379,$1380,$1381,$1382,$1383,$1384,$1385,$1386,$1387,$1388,$1389,$1390,$1391,$1392,$1393,$1394,$1395,$1396,$1397,$1398,$1399,$1400,$1401,$1402,$1403,$1404,$1405,$1406,$1407,$1408,$1409,$1410,$1411,$1412,$1413,$1414,$1415,$1416,$1417,$1418,$1419,$1420,$1421,$1422,$1423,$1424,$1425,$1426,$1427,$1428,$1429,$1430,$1431,$1432,$1433,$1434,$1435,$1436,$1437,$1438,$1439,$1440,$1441,$1442,$1443,$1444,$1445,$1446,$1447,$1448,$1449,$1450,$1451,$1452,$1453,$1454,$1455,$1456,$1457,$1458,$1459,$1460,$1461,$1462,$1463,$1464,$1465,$1466,$1467,$1468,$1469,$1470,$1471,$1472,$1473,$1474,$1475,$1476,$1477,$1478,$1479,$1480,$1481,$1482,$1483,$1484,$1485,$1486,$1487,$1488,$1489,$1490,$1491,$1492,$1493,$1494,$1495,$1496,$1497,$1498,$1499,$1500,$1501,$1502,$1503,$1504,$1505,$1506,$1507,$1508,$1509,$1510,$1511,$1512,$1513,$1514,$1515,$1516,$1517,$1518,$1519,$1520,$1521,$1522,$1523,$1524,$1525,$1526,$1527,$1528,$1529,$1530,$1531,$1532,$1533,$1534,$1535,$1536,$1537,$1538,$1539,$1540,$1541,$1542,$1543,$1544,$1545,$1546,$1547,$1548,$1549,$1550,$1551,$1552,$1553,$1554,$1555,$1556,$1557,$1558,$1559,$1560,$1561,$1562,$1563,$1564,$1565,$1566,$1567,$1568,$1569,$1570,$1571,$1572,$1573,$1574,$1575,$1576,$1577,$1578,$1579,$1580,$1581,$1582,$1583,$1584,$1585,$1586,$1587,$1588,$1589,$1590,$1591,$1592,$1593,$1594,$1595,$1596,$1597,$1598,$1599,$1600,$1601,$1602,$1603,$1604,$1605,$1606,$1607,$1608,$1609,$1610,$1611,$1612,$1613,$1614,$1615,$1616,$1617,$1618,$1619,$1620,$1621,$1622,$1623,$1624,$1625,$1626,$1627,$1628,$1629,$1630,$1631,$1632,$1633,$1634,$1635,$1636,$1637,$1638,$1639,$1640,$1641,$1642,$1643,$1644,$1645,$1646,$1647,$1648,$1649,$1650,$1651,$1652,$1653,$1654,$1655,$1656,$1657,$1658,$1659,$1660,$1661,$1662,$1663,$1664,$1665,$1666,$1667,$1668,$1669,$1670,$1671,$1672,$1673,$1674,$1675,$1676,$1677,$1678,$1679,$1680,$1681,$1682,$1683,$1684,$1685,$1686,$1687,$1688,$1689,$1690,$1691,$1692,$1693,$1694,$1695,$1696,$1697,$1698,$1699,$1700,$1701,$1702,$1703,$1704,$1705,$1706,$1707,$1708,$1709,$1710,$1711,$1712,$1713,$1714,$1715,$1716,$1717,$1718,$1719,$1720,$1721,$1722,$1723,$1724,$1725,$1726,$1727,$1728,$1729,$1730,$1731,$1732,$1733,$1734,$1735,$1736,$1737,$1738,$1739,$1740,$1741,$1742,$1743,$1744,$1745,$1746,$1747,$1748,$1749,$1750,$1751,$1752,$1753,$1754,$1755,$1756,$1757,$1758,$1759,$1760,$1761,$1762,$1763,$1764,$1765,$1766,$1767,$1768,$1769,$1770,$1771,$1772,$1773,$1774,$1775,$1776,$1777,$1778,$1779,$1780,$1781,$1782,$1783,$1784,$1785,$1786,$1787,$1788,$1789,$1790,$1791,$1792,$1793,$1794,$1795,$1796,$1797,$1798,$1799,$1800,$1801,$1802,$1803,$1804,$1805,$1806,$1807,$1808,$1809,$1810,$1811,$1812,$1813,$1814,$1815,$1816,$1817,$1818,$1819,$1820,$1821,$1822,$1823,$1824,$1825,$1826,$1827,$1828,$1829,$1830,$1831,$1832,$1833,$1834,$1835,$1836,$1837,$1838,$1839,
24 min 1% 492 ms 2,982 odoo
SELECT res_groups_users_rel.gid, res_groups_users_rel.uid FROM res_groups_users_rel, "res_users" LEFT JOIN "res_partner" AS "res_users__partner_id" ON ("res_users"."partner_id" = "res_users__partner_id"."id")
                    WHERE (("res_users"."share" IS NULL or "res_users"."share" = $1 ) OR 
                        EXISTS (
                            SELECT $2 FROM "res_company_users_rel" AS "res_users__company_ids"
                            WHERE "res_users__company_ids"."user_id" = "res_users".id
                            AND "res_users__company_ids"."cid" IN ($3)
                        )
                    ) AND (((("res_users__partner_id"."partner_share" IS NULL or "res_users__partner_id"."partner_share" = $4 ) OR ("res_users__partner_id"."company_id" in ($5))) OR "res_users__partner_id"."company_id" IS NULL ) AND (((("res_users__partner_id"."type" != $6) OR "res_users__partner_id"."type" IS NULL) OR "res_users__partner_id"."type" IS NULL ) OR (("res_users__partner_id"."type" = $7) AND ("res_users__partner_id"."create_uid" = $8)))) AND res_groups_users_rel.gid IN ($9) AND res_groups_users_rel.uid = res_users.id
                     ORDER BY "res_users__partner_id"."name" ,"res_users"."login"    OFFSET $10
21 min 1% 65 ms 19,123 odoo
SELECT "product_product".id FROM "product_product" LEFT JOIN "product_template" AS "product_product__product_tmpl_id" ON ("product_product"."product_tmpl_id" = "product_product__product_tmpl_id"."id") LEFT JOIN "ir_translation" AS "product_product__product_tmpl_id__name" ON ("product_product__product_tmpl_id"."id" = "product_product__product_tmpl_id__name"."res_id" AND "product_product__product_tmpl_id__name"."type" = $1 AND "product_product__product_tmpl_id__name"."name" = $2 AND "product_product__product_tmpl_id__name"."lang" = $3 AND "product_product__product_tmpl_id__name"."value" != $4) WHERE (((("product_product"."active" = $5) AND ("product_product__product_tmpl_id"."purchase_ok" = $6)) AND COALESCE("product_product__product_tmpl_id__name"."value", "product_product__product_tmpl_id"."name") ilike $7) AND ($8 OR "product_product"."id" IS NULL)) AND (("product_product__product_tmpl_id"."company_id" in ($9)) OR "product_product__product_tmpl_id"."company_id" IS NULL ) ORDER BY  "product_product"."default_code" ,COALESCE("product_product__product_tmpl_id__name"."value", "product_product__product_tmpl_id"."name") ,"product_product"."id"   LIMIT $10
18 min 1.0% 307 ms 3,576 odoo
SELECT "mail_message".id FROM "mail_message" WHERE ((((("mail_message"."id" in (SELECT "mail_message_res_partner_needaction_rel"."mail_message_id" FROM "mail_message_res_partner_needaction_rel" WHERE ("mail_message_res_partner_needaction_rel"."notification_status" in ($1,$2)))) AND ("mail_message"."author_id" = $3)) AND ("mail_message"."res_id" != $4)) AND "mail_message"."model" IS NOT NULL) AND (("mail_message"."message_type" != $5) OR "mail_message"."message_type" IS NULL)) ORDER BY  "mail_message"."id" DESC  LIMIT $6
14 min 0.7% 672 ms 1,282 odoo
SELECT "account_analytic_line".id FROM "account_analytic_line" WHERE ((("account_analytic_line"."so_line" in ($1,$2)) AND ("account_analytic_line"."amount" <= $3)) AND "account_analytic_line"."project_id" IS NOT NULL) AND ("account_analytic_line"."company_id" IS NULL  OR ("account_analytic_line"."company_id" in ($4))) ORDER BY  "account_analytic_line"."date" DESC,"account_analytic_line"."id" DESC
8 min 0.4% 75 ms 6,332 odoo
SELECT res_partner.id
                         FROM "res_partner"
                       WHERE ("res_partner"."active" = $1) AND (((("res_partner"."partner_share" IS NULL or "res_partner"."partner_share" = $2 ) OR ("res_partner"."company_id" in ($3))) OR "res_partner"."company_id" IS NULL ) AND (((("res_partner"."type" != $4) OR "res_partner"."type" IS NULL) OR "res_partner"."type" IS NULL ) OR (("res_partner"."type" = $5) AND ("res_partner"."create_uid" = $6)))) AND  (res_partner.email ilike $7
                           OR res_partner.display_name ilike $8
                           OR res_partner.ref ilike $9
                           OR res_partner.vat ilike $10)
                           -- don't panic, trust postgres bitmap
                     ORDER BY  res_partner.display_name ilike $11 desc,
                              res_partner.display_name
7 min 0.4% 476 ms 945 odoo
SELECT "account_move_line".id FROM "account_move_line" LEFT JOIN "account_move" AS "account_move_line__move_id" ON ("account_move_line"."move_id" = "account_move_line__move_id"."id") LEFT JOIN "account_account_type" AS "account_move_line__user_type_id" ON ("account_move_line"."user_type_id" = "account_move_line__user_type_id"."id") WHERE ((("account_move_line"."reconciled" IS NULL or "account_move_line"."reconciled" = $1 ) AND (("account_move_line"."account_id" in (SELECT "account_account".id FROM "account_account" WHERE ("account_account"."user_type_id" in (SELECT "account_account_type".id FROM "account_account_type" WHERE ("account_account_type"."type" = $2))) AND ("account_account"."company_id" IS NULL  OR ("account_account"."company_id" in ($3))))) AND (("account_move_line__move_id"."state" != $4) OR "account_move_line__move_id"."state" IS NULL))) AND ("account_move_line"."partner_id" in ($5))) AND (("account_move_line"."company_id" IS NULL  OR ("account_move_line"."company_id" in ($6))) AND ((("account_move_line__move_id"."move_type" in ($7,$8,$9,$10,$11)) AND (("account_move_line__move_id"."invoice_user_id" = $12) OR "account_move_line__move_id"."invoice_user_id" IS NULL )) OR (("account_move_line__move_id"."move_type" in ($13,$14,$15,$16,$17)) AND (((("account_move_line"."team_id" in (SELECT "crm_team".id FROM "crm_team" WHERE ("crm_team"."id" IN (SELECT "sale_team_id" FROM "res_users" WHERE "id" IN ($18) AND "sale_team_id" IS NOT NULL)))) OR ("account_move_line"."team_id" in (SELECT "crm_team".id FROM "crm_team" WHERE ("crm_team"."id" not in (SELECT "sale_team_id" FROM "res_users" WHERE "sale_team_id" IS NOT NULL))))) OR ("account_move_line"."team_id" in ($19))) OR "account_move_line"."team_id" IS NULL )))) ORDER BY  "account_move_line__user_type_id"."sequence" ,"account_move_line"."date" DESC,"account_move_line"."move_name" DESC,"account_move_line"."id"
6 min 0.3% 293 ms 1,137 odoo
SELECT "website_track".id FROM "website_track" WHERE (("website_track"."page_id" = $1) AND ("website_track"."visitor_id" = $2)) ORDER BY  "website_track"."visit_datetime" DESC  LIMIT $3
Covered by index on (visitor_id)
Rows: 120148
Row progression: 120148, 6

Row estimates
- visitor_id (=): 6
- page_id (=): 5353
- visit_datetime (sort): 1

Existing indexes
- id PRIMARY
- page_id
- product_id
- url
- visitor_id
6 min 0.3% 34 ms 9,615 odoo
SELECT msg.res_id FROM mail_message msg
                                 RIGHT JOIN mail_message_res_partner_needaction_rel rel
                                 ON rel.mail_message_id = msg.id AND rel.res_partner_id = $1 AND (rel.is_read = $2 OR rel.is_read IS NULL)
                                 WHERE msg.model = $3 AND msg.res_id in ($4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $80, $81, $82, $83) AND msg.message_type != $84
5 min 0.3% 105 ms 2,882 odoo
SELECT res_partner.id
                         FROM "res_partner"
                       WHERE (((("res_partner"."partner_share" IS NULL or "res_partner"."partner_share" = $1 ) OR ("res_partner"."company_id" in ($2))) OR "res_partner"."company_id" IS NULL ) AND (((("res_partner"."type" != $3) OR "res_partner"."type" IS NULL) OR "res_partner"."type" IS NULL ) OR (("res_partner"."type" = $4) AND ("res_partner"."create_uid" = $5)))) AND  (res_partner.email ilike $6
                           OR res_partner.display_name ilike $7
                           OR res_partner.ref ilike $8
                           OR res_partner.vat ilike $9)
                           -- don't panic, trust postgres bitmap
                     ORDER BY  res_partner.display_name ilike $10 desc,
                              res_partner.display_name
4 min 0.2% 55 ms 4,449 odoo
SELECT mail_channel_partner.channel_id, mail_channel_partner.partner_id FROM mail_channel_partner, "res_partner"
                    WHERE $1=$2 AND mail_channel_partner.channel_id IN ($3) AND mail_channel_partner.partner_id = res_partner.id
                     ORDER BY "res_partner"."display_name"    OFFSET $4
3 min 0.2% 33 ms 6,265 odoo
SELECT msg.res_id FROM mail_message msg
                                 RIGHT JOIN mail_message_res_partner_needaction_rel rel
                                 ON rel.mail_message_id = msg.id AND rel.res_partner_id = $1 AND (rel.is_read = $2 OR rel.is_read IS NULL)
                                 WHERE msg.model = $3 AND msg.res_id in ($4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23) AND msg.message_type != $24
2 min 0.1% 96 ms 1,495 odoo
SELECT msg.res_id FROM mail_message msg
                                 RIGHT JOIN mail_message_mail_channel_rel rel
                                 ON rel.mail_message_id = msg.id
                                 RIGHT JOIN mail_channel_partner cp
                                 ON (cp.channel_id = rel.mail_channel_id AND cp.partner_id = $1 AND
                                    (cp.seen_message_id IS NULL OR cp.seen_message_id < msg.id))
                                 WHERE msg.model = $2 AND msg.res_id = ANY(ARRAY[$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82]) AND
                                        msg.message_type != $83 AND
                                       (msg.author_id IS NULL OR msg.author_id != $84) AND
                                       (msg.message_type not in ($85, $86) OR msg.model != $87)
2 min 0.1% 22 ms 6,540 odoo
SELECT "hr_employee".id FROM "hr_employee" WHERE ((("hr_employee"."active" = $1) AND "hr_employee"."contract_id" IS NOT NULL) AND (("hr_employee"."allocation_month" != $2) OR "hr_employee"."allocation_month" IS NULL)) AND ("hr_employee"."company_id" IS NULL  OR ("hr_employee"."company_id" in ($3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21))) ORDER BY  "hr_employee"."code"   LIMIT $22
2 min 0.1% 174 ms 681 odoo
SELECT "hr_payroll_bulletin".id FROM "hr_payroll_bulletin" WHERE ((("hr_payroll_bulletin"."payrun_id" in (SELECT "hr_payroll".id FROM "hr_payroll" WHERE ("hr_payroll"."start_provision" = $1))) AND ("hr_payroll_bulletin"."provision_processed" IS NULL or "hr_payroll_bulletin"."provision_processed" = $2 )) AND "hr_payroll_bulletin"."provision_move_id" IS NULL ) ORDER BY  "hr_payroll_bulletin"."id"   LIMIT $3
2 min < 0.1% 21 ms 4,550 odoo
SELECT "calendar_event".id FROM "calendar_event" WHERE (("calendar_event"."active" = $1) AND ((((("calendar_event"."start" >= $2) OR ("calendar_event"."stop" >= $3)) AND ("calendar_event"."start" <= $4)) OR (("calendar_event"."allday" = $5) AND ("calendar_event"."start_date" = $6))) AND ("calendar_event"."id" IN (SELECT "calendar_attendee"."event_id" FROM "calendar_attendee" WHERE ("calendar_attendee"."partner_id" = $7))))) AND (("calendar_event"."user_id" = $8) OR ("calendar_event"."show_as" = $9)) ORDER BY  "calendar_event"."start"
1 min < 0.1% 211 ms 400 odoo
SELECT "account_analytic_line".id FROM "account_analytic_line" WHERE ((("account_analytic_line"."so_line" in ($1)) AND ("account_analytic_line"."amount" <= $2)) AND "account_analytic_line"."project_id" IS NOT NULL) AND ("account_analytic_line"."company_id" IS NULL  OR ("account_analytic_line"."company_id" in ($3))) ORDER BY  "account_analytic_line"."date" DESC,"account_analytic_line"."id" DESC
1 min < 0.1% 45 ms 1,698 odoo
SELECT "account_analytic_account".id FROM "account_analytic_account" WHERE (("account_analytic_account"."active" = $1) AND ((("account_analytic_account"."code"::text ilike $2) OR ("account_analytic_account"."name"::text ilike $3)) OR ("account_analytic_account"."partner_id" in (SELECT "res_partner".id FROM "res_partner" WHERE (("res_partner"."active" = $4) AND ("res_partner"."name"::text ilike $5)) AND (((("res_partner"."partner_share" IS NULL or "res_partner"."partner_share" = $6 ) OR ("res_partner"."company_id" in ($7))) OR "res_partner"."company_id" IS NULL ) AND (((("res_partner"."type" != $8) OR "res_partner"."type" IS NULL) OR "res_partner"."type" IS NULL ) OR (("res_partner"."type" = $9) AND ("res_partner"."create_uid" = $10)))) ORDER BY  "res_partner"."display_name"   LIMIT $11)))) AND ("account_analytic_account"."company_id" IS NULL  OR ("account_analytic_account"."company_id" in ($12))) ORDER BY  "account_analytic_account"."code" ,"account_analytic_account"."name" ASC  LIMIT $13
1 min < 0.1% 73 ms 986 odoo
SELECT res_partner.id
                         FROM "res_partner"
                       WHERE ("res_partner"."active" = $1) AND (((("res_partner"."partner_share" IS NULL or "res_partner"."partner_share" = $2 ) OR ("res_partner"."company_id" in ($3))) OR "res_partner"."company_id" IS NULL ) AND (((("res_partner"."type" != $4) OR "res_partner"."type" IS NULL) OR "res_partner"."type" IS NULL ) OR (("res_partner"."type" = $5) AND ("res_partner"."create_uid" = $6)))) AND  (res_partner.email ilike $7
                           OR res_partner.display_name ilike $8
                           OR res_partner.ref ilike $9
                           OR res_partner.vat ilike $10)
                           -- don't panic, trust postgres bitmap
                     ORDER BY  res_partner.display_name ilike $11 desc,
                              res_partner.display_name
                     limit $12
1 min < 0.1% 22 ms 2,098 odoo
SELECT 
                        COALESCE(SUM(l.debit),$1) AS debit, 
                        COALESCE(SUM(l.credit),$2) AS credit, 
                        COALESCE(SUM(l.debit - l.credit),$3) AS balance
                    FROM account_move_line l
                    JOIN account_move m ON (l.move_id=m.id)
                    JOIN account_account a ON (l.account_id=a.id)
                    LEFT JOIN account_analytic_account anl ON (l.analytic_account_id=anl.id)
                    LEFT JOIN account_analytic_tag_account_move_line_rel analtag ON analtag.account_move_line_id = l.id
                    LEFT JOIN res_currency c ON (l.currency_id=c.id)
                    LEFT JOIN res_partner p ON (l.partner_id=p.id)
                    JOIN account_journal j ON (l.journal_id=j.id)
                    WHERE ($4=$5) AND l.company_id = $6 AND m.state = $7 AND l.date < $8 AND l.account_id = $9
1 min < 0.1% 72 ms 565 odoo
SELECT res_partner.id
                         FROM "res_partner"
                       WHERE ("res_partner"."active" = $1) AND (((("res_partner"."partner_share" IS NULL or "res_partner"."partner_share" = $2 ) OR ("res_partner"."company_id" in ($3))) OR "res_partner"."company_id" IS NULL ) AND (((("res_partner"."type" != $4) OR "res_partner"."type" IS NULL) OR "res_partner"."type" IS NULL ) OR (("res_partner"."type" = $5) AND ("res_partner"."create_uid" = $6)))) AND  (res_partner.email ilike $7
                           OR res_partner.display_name ilike $8
                           OR res_partner.ref ilike $9
                           OR res_partner.vat ilike $10)
                           -- don't panic, trust postgres bitmap
                     ORDER BY COALESCE(res_partner.supplier_rank, $11) DESC, res_partner.display_name ilike $12 desc,
                              res_partner.display_name
                     limit $13
1 min < 0.1% 21 ms 1,667 odoo
INSERT INTO "mail_message" ("id", "create_uid", "create_date", "write_uid", "write_date", "add_sign", "author_id", "body", "date", "email_from", "email_layout_xmlid", "mail_activity_type_id", "mail_server_id", "message_id", "message_type", "model", "no_auto_thread", "parent_id", "record_name", "reply_to", "res_id", "subject", "subtype_id") VALUES (nextval($1), $2, (now() at time zone $3), $4, (now() at time zone $5), $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23) RETURNING id
1 min < 0.1% 155 ms 216 odoo
SELECT "mail_message".id FROM "mail_message" WHERE ("mail_message"."id" IN (SELECT "mail_message_res_partner_needaction_rel"."mail_message_id" FROM "mail_message_res_partner_needaction_rel" WHERE (("mail_message_res_partner_needaction_rel"."res_partner_id" = $1) AND ("mail_message_res_partner_needaction_rel"."is_read" IS NULL or "mail_message_res_partner_needaction_rel"."is_read" = $2 )))) ORDER BY  "mail_message"."id" DESC  LIMIT $3