This commit is contained in:
seb
2026-09-22 08:35:36 +02:00
parent dce65db435
commit 075b1f0ddc
3 changed files with 358 additions and 102 deletions

View File

@@ -1,130 +1,387 @@
# Database Drivers API Timing & Benchmark Report
- **Date**: 2026-09-22T06:09:22.346Z
- **Date**: 2026-09-22T06:35:11.546Z
- **Scale**: small
- **Read Iterations on Filled DB**: 2
## Comparative Summary
| Metric | MSSQL | better-sqlite3 | Delta |
| :--- | :---: | :---: | :---: |
| Total API Calls | 450 | 450 | - |
| Total Runtime | 6.64s | 0.62s | 10.7x |
## API Timings Comparison (in milliseconds)
| API Method | Calls | MSSQL Avg (ms) | MSSQL P95 (ms) | SQLite Avg (ms) | SQLite P95 (ms) | Ratio (MSSQL / SQLite) |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: |
| `article.addImage` | 4 | 47.64 | 60.57 | 35.52 | 44.72 | 1.34x |
| `article.createUnderParent` | 19 | 14.88 | 33.74 | 0.53 | 0.99 | 27.83x |
| `article.delete` | 1 | 26.64 | 26.64 | 0.62 | 0.62 | 42.87x |
| `article.deleteImage` | 1 | 9.93 | 9.93 | 0.90 | 0.90 | 11.03x |
| `article.getBySku` | 2 | 81.30 | 119.37 | 0.69 | 0.78 | 118.26x |
| `article.getHistoryBySku` | 2 | 6.93 | 9.43 | 0.29 | 0.31 | 24.25x |
| `article.importRows` | 1 | 69.17 | 69.17 | 2.43 | 2.43 | 28.47x |
| `article.listExport` | 4 | 8.72 | 19.16 | 0.87 | 1.29 | 10.06x |
| `article.listSearchIndex` | 2 | 10.62 | 17.54 | 0.55 | 0.63 | 19.39x |
| `article.orderImages` | 3 | 17.31 | 37.98 | 0.50 | 0.70 | 34.72x |
| `article.setBrandIdBySku` | 18 | 15.50 | 24.98 | 0.57 | 0.81 | 27.21x |
| `article.setCategoryIdsBySku` | 18 | 15.08 | 33.45 | 0.74 | 1.01 | 20.24x |
| `article.setEansBySku` | 18 | 11.86 | 19.23 | 0.56 | 0.85 | 21.15x |
| `article.setFatherBySku` | 13 | 14.79 | 25.32 | 0.66 | 0.92 | 22.52x |
| `article.setPricesBySku` | 18 | 14.16 | 29.51 | 0.69 | 1.12 | 20.48x |
| `article.setWeightBySku` | 18 | 14.18 | 36.45 | 0.52 | 0.68 | 27.02x |
| `article.updateBySku` | 18 | 18.71 | 84.26 | 0.83 | 1.65 | 22.52x |
| `articlesupplier.create` | 19 | 12.88 | 39.44 | 0.58 | 1.03 | 22.29x |
| `articlesupplier.delete` | 1 | 8.07 | 8.07 | 0.43 | 0.43 | 18.76x |
| `articlesupplier.listByArticleSku` | 2 | 8.19 | 11.57 | 0.27 | 0.29 | 30.66x |
| `articlesupplier.listByEntityAndSkus` | 2 | 20.65 | 29.06 | 0.44 | 0.51 | 47.12x |
| `articlesupplier.listBySupplierAndSkus` | 2 | 9.30 | 13.09 | 0.35 | 0.36 | 26.24x |
| `articlesupplier.order` | 18 | 8.66 | 13.15 | 0.29 | 0.49 | 29.49x |
| `articlesupplier.update` | 18 | 8.83 | 15.43 | 0.42 | 0.79 | 20.98x |
| `brand.delete` | 1 | 9.21 | 9.21 | 0.25 | 0.25 | 37.49x |
| `brand.list` | 1 | 12.07 | 12.07 | 0.26 | 0.26 | 45.96x |
| `brand.upsert` | 3 | 22.35 | 34.39 | 0.26 | 0.31 | 86.44x |
| `category.addImage` | 2 | 51.42 | 73.36 | 43.24 | 65.95 | 1.19x |
| `category.createUnderParent` | 10 | 16.35 | 52.04 | 0.41 | 0.93 | 39.47x |
| `category.delete` | 1 | 10.38 | 10.38 | 0.25 | 0.25 | 41.40x |
| `category.deleteImage` | 1 | 6.82 | 6.82 | 0.29 | 0.29 | 23.65x |
| `category.ensureByPath` | 1 | 57.16 | 57.16 | 0.66 | 0.66 | 86.66x |
| `category.getCategoryArticles` | 2 | 2.47 | 2.66 | 0.40 | 0.42 | 6.12x |
| `category.getTreeForCompany` | 2 | 54.69 | 106.10 | 0.73 | 0.77 | 75.38x |
| `category.move` | 1 | 14.14 | 14.14 | 0.53 | 0.53 | 26.74x |
| `category.order` | 1 | 11.45 | 11.45 | 0.39 | 0.39 | 29.29x |
| `category.rename` | 1 | 12.30 | 12.30 | 0.26 | 0.26 | 47.06x |
| `company.create` | 2 | 33.01 | 43.31 | 1.15 | 1.48 | 28.69x |
| `company.delete` | 1 | 29.27 | 29.27 | 0.23 | 0.23 | 127.66x |
| `company.list` | 1 | 28.81 | 28.81 | 0.29 | 0.29 | 98.16x |
| `company.update` | 1 | 13.54 | 13.54 | 0.50 | 0.50 | 27.01x |
| `companysetting.get` | 1 | 11.64 | 11.64 | 0.24 | 0.24 | 48.51x |
| `companysetting.list` | 3 | 6.40 | 13.33 | 0.22 | 0.32 | 28.78x |
| `companysetting.set` | 2 | 51.43 | 59.91 | 0.36 | 0.44 | 142.93x |
| `companyuser.add` | 1 | 4.54 | 4.54 | 0.12 | 0.12 | 37.82x |
| `companyuser.delete` | 1 | 18.55 | 18.55 | 0.10 | 0.10 | 183.31x |
| `companyuser.getByEmail` | 1 | 7.52 | 7.52 | 0.11 | 0.11 | 70.75x |
| `customergroup.create` | 3 | 15.74 | 21.61 | 0.32 | 0.43 | 48.99x |
| `customergroup.delete` | 1 | 21.84 | 21.84 | 0.27 | 0.27 | 80.42x |
| `customergroup.list` | 2 | 9.48 | 11.19 | 0.20 | 0.22 | 48.26x |
| `customergroup.order` | 1 | 22.29 | 22.29 | 0.41 | 0.41 | 53.85x |
| `customergroup.update` | 1 | 20.70 | 20.70 | 0.34 | 0.34 | 61.11x |
| `delivery.create` | 7 | 43.28 | 173.79 | 9.73 | 63.60 | 4.45x |
| `delivery.delete` | 1 | 10.03 | 10.03 | 0.26 | 0.26 | 38.58x |
| `delivery.getById` | 2 | 5.34 | 5.48 | 0.47 | 0.68 | 11.37x |
| `delivery.list` | 2 | 7.52 | 9.45 | 0.33 | 0.39 | 22.61x |
| `delivery.update` | 6 | 13.35 | 21.43 | 0.53 | 1.11 | 25.38x |
| `entity.create` | 7 | 16.47 | 21.70 | 0.51 | 0.91 | 32.34x |
| `entity.delete` | 1 | 32.28 | 32.28 | 0.25 | 0.25 | 129.68x |
| `entity.getById` | 2 | 4.86 | 5.77 | 0.18 | 0.21 | 26.39x |
| `entity.isNumberFree` | 6 | 7.91 | 17.94 | 0.18 | 0.25 | 44.36x |
| `entity.list` | 4 | 8.82 | 10.89 | 0.23 | 0.28 | 38.90x |
| `entity.peekNextNumber` | 6 | 11.85 | 21.28 | 0.25 | 0.41 | 47.87x |
| `entityaddress.create` | 7 | 14.43 | 22.53 | 0.34 | 0.60 | 42.26x |
| `entityaddress.delete` | 1 | 14.65 | 14.65 | 0.27 | 0.27 | 53.70x |
| `entityaddress.list` | 2 | 6.32 | 6.87 | 0.25 | 0.29 | 25.38x |
| `entityaddress.update` | 6 | 14.55 | 21.88 | 0.39 | 0.59 | 37.04x |
| `entitycontact.create` | 7 | 12.02 | 21.40 | 0.29 | 0.41 | 41.25x |
| `entitycontact.delete` | 1 | 14.58 | 14.58 | 0.26 | 0.26 | 55.87x |
| `entitycontact.list` | 2 | 6.00 | 6.24 | 0.23 | 0.26 | 25.85x |
| `entitycontact.update` | 6 | 13.67 | 22.68 | 0.34 | 0.49 | 39.90x |
| `google_auth.add` | 3 | 6.50 | 8.22 | 0.22 | 0.46 | 29.40x |
| `google_auth.getByEmail` | 2 | 1.46 | 2.17 | 0.06 | 0.07 | 25.66x |
| `google_auth.getById` | 2 | 0.92 | 1.07 | 0.07 | 0.08 | 13.25x |
| `google_auth.listAllowedEmails` | 1 | 3.03 | 3.03 | 0.14 | 0.14 | 21.29x |
| `google_auth.removeAllowedEmail` | 1 | 12.88 | 12.88 | 0.10 | 0.10 | 128.56x |
| `google_auth.setProfile` | 1 | 11.57 | 11.57 | 0.17 | 0.17 | 66.27x |
| `google_auth.setSelectedCompany` | 2 | 5.45 | 6.44 | 0.07 | 0.08 | 80.61x |
| `lang.create` | 2 | 4.36 | 4.68 | 0.07 | 0.07 | 60.79x |
| `lang.delete` | 1 | 11.88 | 11.88 | 0.11 | 0.11 | 112.34x |
| `lang.ensure` | 2 | 3.64 | 5.93 | 0.10 | 0.11 | 36.95x |
| `lang.getByIso639` | 1 | 1.29 | 1.29 | 0.05 | 0.05 | 25.28x |
| `lang.list` | 1 | 1.74 | 1.74 | 0.06 | 0.06 | 26.85x |
| `manifestattachment.add` | 3 | 70.39 | 107.85 | 35.59 | 55.74 | 1.98x |
| `manifestattachment.getById` | 2 | 4.94 | 6.69 | 0.83 | 0.94 | 5.97x |
| `manifestattachment.listByManifestId` | 3 | 3.92 | 4.37 | 0.61 | 0.72 | 6.46x |
| `manifestattachment.order` | 1 | 17.83 | 17.83 | 0.56 | 0.56 | 31.79x |
| `manifestattachment.remove` | 1 | 16.69 | 16.69 | 0.85 | 0.85 | 19.58x |
| `numbers.list` | 1 | 4.61 | 4.61 | 0.23 | 0.23 | 20.36x |
| `order.create` | 7 | 15.03 | 27.23 | 0.53 | 0.69 | 28.36x |
| `order.delete` | 1 | 11.60 | 11.60 | 0.24 | 0.24 | 47.50x |
| `order.getById` | 2 | 4.00 | 4.19 | 0.23 | 0.25 | 17.27x |
| `order.list` | 2 | 4.00 | 4.91 | 0.21 | 0.26 | 19.19x |
| `order.update` | 6 | 13.83 | 28.49 | 0.36 | 0.57 | 38.68x |
| `pic.getImageByHash` | 2 | 14.93 | 20.18 | 0.71 | 0.82 | 20.91x |
| `pic.getThumbByHash` | 2 | 7.43 | 9.27 | 0.64 | 0.70 | 11.65x |
| `posterminal.delete` | 1 | 12.11 | 12.11 | 0.21 | 0.21 | 58.46x |
| `posterminal.getCategoryPosterminalIds` | 1 | 7.53 | 7.53 | 0.11 | 0.11 | 68.81x |
| `posterminal.list` | 3 | 3.36 | 4.78 | 0.19 | 0.21 | 18.10x |
| `posterminal.setOff` | 1 | 13.82 | 13.82 | 0.42 | 0.42 | 32.74x |
| `posterminal.setOffAll` | 1 | 10.53 | 10.53 | 0.32 | 0.32 | 33.00x |
| `posterminal.setOn` | 1 | 23.16 | 23.16 | 0.45 | 0.45 | 51.06x |
| `posterminal.setOnAll` | 1 | 17.22 | 17.22 | 0.57 | 0.57 | 30.41x |
| `posterminal.upsert` | 3 | 8.53 | 8.85 | 0.29 | 0.44 | 28.97x |
| `quote.create` | 7 | 14.98 | 42.98 | 0.62 | 1.33 | 24.22x |
| `quote.delete` | 1 | 8.85 | 8.85 | 0.24 | 0.24 | 36.55x |
| `quote.getById` | 2 | 3.95 | 4.08 | 0.22 | 0.24 | 17.63x |
| `quote.list` | 2 | 2.84 | 2.86 | 0.21 | 0.24 | 13.79x |
| `quote.update` | 6 | 12.05 | 25.22 | 0.37 | 0.64 | 32.58x |
| `supplier.create` | 4 | 11.97 | 17.41 | 0.43 | 0.68 | 27.82x |
| `supplier.delete` | 1 | 14.46 | 14.46 | 0.30 | 0.30 | 48.16x |
| `supplier.list` | 3 | 4.87 | 6.92 | 0.21 | 0.28 | 23.59x |
| `supplier.update` | 3 | 9.49 | 13.39 | 0.45 | 0.62 | 20.93x |
| `tax.create` | 1 | 5.67 | 5.67 | 0.09 | 0.09 | 62.58x |
| `tax.ensure` | 2 | 1.15 | 1.19 | 0.07 | 0.09 | 16.24x |
| `tax.getByRate` | 1 | 1.28 | 1.28 | 0.05 | 0.05 | 24.46x |
| `tax.list` | 1 | 1.87 | 1.87 | 0.07 | 0.07 | 26.92x |
| `unit.delete` | 1 | 9.09 | 9.09 | 0.25 | 0.25 | 36.18x |
| `unit.list` | 1 | 17.29 | 17.29 | 0.28 | 0.28 | 61.77x |
| `unit.upsert` | 3 | 23.97 | 39.26 | 0.54 | 0.82 | 44.60x |
## MSSQL (MssqlProvider) Detailed Breakdown
| API Method | Calls | Avg (ms) | Min (ms) | Max (ms) | P50 (ms) | P95 (ms) | Errors |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| `article.addImage` | 4 | 47.64 | 21.74 | 60.57 | 59.44 | 60.57 | 0 |
| `article.createUnderParent` | 19 | 14.88 | 8.57 | 33.74 | 11.24 | 33.74 | 0 |
| `article.delete` | 1 | 26.64 | 26.64 | 26.64 | 26.64 | 26.64 | 0 |
| `article.deleteImage` | 1 | 9.93 | 9.93 | 9.93 | 9.93 | 9.93 | 0 |
| `article.getBySku` | 2 | 81.30 | 43.23 | 119.37 | 119.37 | 119.37 | 0 |
| `article.getHistoryBySku` | 2 | 6.93 | 4.44 | 9.43 | 9.43 | 9.43 | 0 |
| `article.importRows` | 1 | 69.17 | 69.17 | 69.17 | 69.17 | 69.17 | 0 |
| `article.listExport` | 4 | 8.72 | 4.95 | 19.16 | 5.80 | 19.16 | 0 |
| `article.listSearchIndex` | 2 | 10.62 | 3.70 | 17.54 | 17.54 | 17.54 | 0 |
| `article.orderImages` | 3 | 17.31 | 6.66 | 37.98 | 7.31 | 37.98 | 0 |
| `article.setBrandIdBySku` | 18 | 15.50 | 9.85 | 24.98 | 14.23 | 24.98 | 0 |
| `article.setCategoryIdsBySku` | 18 | 15.08 | 9.51 | 33.45 | 13.12 | 33.45 | 0 |
| `article.setEansBySku` | 18 | 11.86 | 8.23 | 19.23 | 11.67 | 19.23 | 0 |
| `article.setFatherBySku` | 13 | 14.79 | 8.86 | 25.32 | 14.06 | 25.32 | 0 |
| `article.setPricesBySku` | 18 | 14.16 | 8.82 | 29.51 | 12.62 | 29.51 | 0 |
| `article.setWeightBySku` | 18 | 14.18 | 9.15 | 36.45 | 12.90 | 36.45 | 0 |
| `article.updateBySku` | 18 | 18.71 | 8.88 | 84.26 | 13.70 | 84.26 | 0 |
| `articlesupplier.create` | 19 | 12.88 | 7.89 | 39.44 | 11.51 | 39.44 | 0 |
| `articlesupplier.delete` | 1 | 8.07 | 8.07 | 8.07 | 8.07 | 8.07 | 0 |
| `articlesupplier.listByArticleSku` | 2 | 8.19 | 4.82 | 11.57 | 11.57 | 11.57 | 0 |
| `articlesupplier.listByEntityAndSkus` | 2 | 20.65 | 12.24 | 29.06 | 29.06 | 29.06 | 0 |
| `articlesupplier.listBySupplierAndSkus` | 2 | 9.30 | 5.51 | 13.09 | 13.09 | 13.09 | 0 |
| `articlesupplier.order` | 18 | 8.66 | 6.17 | 13.15 | 7.88 | 13.15 | 0 |
| `articlesupplier.update` | 18 | 8.83 | 6.21 | 15.43 | 8.05 | 15.43 | 0 |
| `brand.delete` | 1 | 9.21 | 9.21 | 9.21 | 9.21 | 9.21 | 0 |
| `brand.list` | 1 | 12.07 | 12.07 | 12.07 | 12.07 | 12.07 | 0 |
| `brand.upsert` | 3 | 22.35 | 9.62 | 34.39 | 23.03 | 34.39 | 0 |
| `category.addImage` | 2 | 51.42 | 29.49 | 73.36 | 73.36 | 73.36 | 0 |
| `category.createUnderParent` | 10 | 16.35 | 8.77 | 52.04 | 13.12 | 52.04 | 0 |
| `category.delete` | 1 | 10.38 | 10.38 | 10.38 | 10.38 | 10.38 | 0 |
| `category.deleteImage` | 1 | 6.82 | 6.82 | 6.82 | 6.82 | 6.82 | 0 |
| `category.ensureByPath` | 1 | 57.16 | 57.16 | 57.16 | 57.16 | 57.16 | 0 |
| `category.getCategoryArticles` | 2 | 2.47 | 2.29 | 2.66 | 2.66 | 2.66 | 0 |
| `category.getTreeForCompany` | 2 | 54.69 | 3.27 | 106.10 | 106.10 | 106.10 | 0 |
| `category.move` | 1 | 14.14 | 14.14 | 14.14 | 14.14 | 14.14 | 0 |
| `category.order` | 1 | 11.45 | 11.45 | 11.45 | 11.45 | 11.45 | 0 |
| `category.rename` | 1 | 12.30 | 12.30 | 12.30 | 12.30 | 12.30 | 0 |
| `company.create` | 2 | 33.01 | 22.72 | 43.31 | 43.31 | 43.31 | 0 |
| `company.delete` | 1 | 29.27 | 29.27 | 29.27 | 29.27 | 29.27 | 0 |
| `company.list` | 1 | 28.81 | 28.81 | 28.81 | 28.81 | 28.81 | 0 |
| `company.update` | 1 | 13.54 | 13.54 | 13.54 | 13.54 | 13.54 | 0 |
| `companysetting.get` | 1 | 11.64 | 11.64 | 11.64 | 11.64 | 11.64 | 0 |
| `companysetting.list` | 3 | 6.40 | 2.62 | 13.33 | 3.25 | 13.33 | 0 |
| `companysetting.set` | 2 | 51.43 | 42.96 | 59.91 | 59.91 | 59.91 | 0 |
| `companyuser.add` | 1 | 4.54 | 4.54 | 4.54 | 4.54 | 4.54 | 0 |
| `companyuser.delete` | 1 | 18.55 | 18.55 | 18.55 | 18.55 | 18.55 | 0 |
| `companyuser.getByEmail` | 1 | 7.52 | 7.52 | 7.52 | 7.52 | 7.52 | 0 |
| `customergroup.create` | 3 | 15.74 | 9.18 | 21.61 | 16.43 | 21.61 | 0 |
| `customergroup.delete` | 1 | 21.84 | 21.84 | 21.84 | 21.84 | 21.84 | 0 |
| `customergroup.list` | 2 | 9.48 | 7.76 | 11.19 | 11.19 | 11.19 | 0 |
| `customergroup.order` | 1 | 22.29 | 22.29 | 22.29 | 22.29 | 22.29 | 0 |
| `customergroup.update` | 1 | 20.70 | 20.70 | 20.70 | 20.70 | 20.70 | 0 |
| `delivery.create` | 7 | 43.28 | 11.06 | 173.79 | 18.67 | 173.79 | 0 |
| `delivery.delete` | 1 | 10.03 | 10.03 | 10.03 | 10.03 | 10.03 | 0 |
| `delivery.getById` | 2 | 5.34 | 5.21 | 5.48 | 5.48 | 5.48 | 0 |
| `delivery.list` | 2 | 7.52 | 5.59 | 9.45 | 9.45 | 9.45 | 0 |
| `delivery.update` | 6 | 13.35 | 7.88 | 21.43 | 11.92 | 21.43 | 0 |
| `entity.create` | 7 | 16.47 | 8.63 | 21.70 | 16.97 | 21.70 | 0 |
| `entity.delete` | 1 | 32.28 | 32.28 | 32.28 | 32.28 | 32.28 | 0 |
| `entity.getById` | 2 | 4.86 | 3.95 | 5.77 | 5.77 | 5.77 | 0 |
| `entity.isNumberFree` | 6 | 7.91 | 4.24 | 17.94 | 6.84 | 17.94 | 0 |
| `entity.list` | 4 | 8.82 | 6.96 | 10.89 | 9.67 | 10.89 | 0 |
| `entity.peekNextNumber` | 6 | 11.85 | 7.67 | 21.28 | 11.36 | 21.28 | 0 |
| `entityaddress.create` | 7 | 14.43 | 6.45 | 22.53 | 13.11 | 22.53 | 0 |
| `entityaddress.delete` | 1 | 14.65 | 14.65 | 14.65 | 14.65 | 14.65 | 0 |
| `entityaddress.list` | 2 | 6.32 | 5.76 | 6.87 | 6.87 | 6.87 | 0 |
| `entityaddress.update` | 6 | 14.55 | 7.32 | 21.88 | 15.28 | 21.88 | 0 |
| `entitycontact.create` | 7 | 12.02 | 6.84 | 21.40 | 11.16 | 21.40 | 0 |
| `entitycontact.delete` | 1 | 14.58 | 14.58 | 14.58 | 14.58 | 14.58 | 0 |
| `entitycontact.list` | 2 | 6.00 | 5.77 | 6.24 | 6.24 | 6.24 | 0 |
| `entitycontact.update` | 6 | 13.67 | 7.53 | 22.68 | 14.58 | 22.68 | 0 |
| `google_auth.add` | 3 | 6.50 | 5.37 | 8.22 | 5.93 | 8.22 | 0 |
| `google_auth.getByEmail` | 2 | 1.46 | 0.76 | 2.17 | 2.17 | 2.17 | 0 |
| `google_auth.getById` | 2 | 0.92 | 0.78 | 1.07 | 1.07 | 1.07 | 0 |
| `google_auth.listAllowedEmails` | 1 | 3.03 | 3.03 | 3.03 | 3.03 | 3.03 | 0 |
| `google_auth.removeAllowedEmail` | 1 | 12.88 | 12.88 | 12.88 | 12.88 | 12.88 | 0 |
| `google_auth.setProfile` | 1 | 11.57 | 11.57 | 11.57 | 11.57 | 11.57 | 0 |
| `google_auth.setSelectedCompany` | 2 | 5.45 | 4.45 | 6.44 | 6.44 | 6.44 | 0 |
| `lang.create` | 2 | 4.36 | 4.05 | 4.68 | 4.68 | 4.68 | 0 |
| `lang.delete` | 1 | 11.88 | 11.88 | 11.88 | 11.88 | 11.88 | 0 |
| `lang.ensure` | 2 | 3.64 | 1.34 | 5.93 | 5.93 | 5.93 | 0 |
| `lang.getByIso639` | 1 | 1.29 | 1.29 | 1.29 | 1.29 | 1.29 | 0 |
| `lang.list` | 1 | 1.74 | 1.74 | 1.74 | 1.74 | 1.74 | 0 |
| `manifestattachment.add` | 3 | 70.39 | 44.00 | 107.85 | 59.31 | 107.85 | 0 |
| `manifestattachment.getById` | 2 | 4.94 | 3.18 | 6.69 | 6.69 | 6.69 | 0 |
| `manifestattachment.listByManifestId` | 3 | 3.92 | 3.28 | 4.37 | 4.10 | 4.37 | 0 |
| `manifestattachment.order` | 1 | 17.83 | 17.83 | 17.83 | 17.83 | 17.83 | 0 |
| `manifestattachment.remove` | 1 | 16.69 | 16.69 | 16.69 | 16.69 | 16.69 | 0 |
| `numbers.list` | 1 | 4.61 | 4.61 | 4.61 | 4.61 | 4.61 | 0 |
| `order.create` | 7 | 15.03 | 8.12 | 27.23 | 11.21 | 27.23 | 0 |
| `order.delete` | 1 | 11.60 | 11.60 | 11.60 | 11.60 | 11.60 | 0 |
| `order.getById` | 2 | 4.00 | 3.81 | 4.19 | 4.19 | 4.19 | 0 |
| `order.list` | 2 | 4.00 | 3.09 | 4.91 | 4.91 | 4.91 | 0 |
| `order.update` | 6 | 13.83 | 6.56 | 28.49 | 9.63 | 28.49 | 0 |
| `pic.getImageByHash` | 2 | 14.93 | 9.67 | 20.18 | 20.18 | 20.18 | 0 |
| `pic.getThumbByHash` | 2 | 7.43 | 5.59 | 9.27 | 9.27 | 9.27 | 0 |
| `posterminal.delete` | 1 | 12.11 | 12.11 | 12.11 | 12.11 | 12.11 | 0 |
| `posterminal.getCategoryPosterminalIds` | 1 | 7.53 | 7.53 | 7.53 | 7.53 | 7.53 | 0 |
| `posterminal.list` | 3 | 3.36 | 2.62 | 4.78 | 2.69 | 4.78 | 0 |
| `posterminal.setOff` | 1 | 13.82 | 13.82 | 13.82 | 13.82 | 13.82 | 0 |
| `posterminal.setOffAll` | 1 | 10.53 | 10.53 | 10.53 | 10.53 | 10.53 | 0 |
| `posterminal.setOn` | 1 | 23.16 | 23.16 | 23.16 | 23.16 | 23.16 | 0 |
| `posterminal.setOnAll` | 1 | 17.22 | 17.22 | 17.22 | 17.22 | 17.22 | 0 |
| `posterminal.upsert` | 3 | 8.53 | 8.02 | 8.85 | 8.74 | 8.85 | 0 |
| `quote.create` | 7 | 14.98 | 7.38 | 42.98 | 11.00 | 42.98 | 0 |
| `quote.delete` | 1 | 8.85 | 8.85 | 8.85 | 8.85 | 8.85 | 0 |
| `quote.getById` | 2 | 3.95 | 3.81 | 4.08 | 4.08 | 4.08 | 0 |
| `quote.list` | 2 | 2.84 | 2.83 | 2.86 | 2.86 | 2.86 | 0 |
| `quote.update` | 6 | 12.05 | 7.41 | 25.22 | 8.80 | 25.22 | 0 |
| `supplier.create` | 4 | 11.97 | 7.19 | 17.41 | 15.82 | 17.41 | 0 |
| `supplier.delete` | 1 | 14.46 | 14.46 | 14.46 | 14.46 | 14.46 | 0 |
| `supplier.list` | 3 | 4.87 | 3.32 | 6.92 | 4.37 | 6.92 | 0 |
| `supplier.update` | 3 | 9.49 | 7.39 | 13.39 | 7.70 | 13.39 | 0 |
| `tax.create` | 1 | 5.67 | 5.67 | 5.67 | 5.67 | 5.67 | 0 |
| `tax.ensure` | 2 | 1.15 | 1.12 | 1.19 | 1.19 | 1.19 | 0 |
| `tax.getByRate` | 1 | 1.28 | 1.28 | 1.28 | 1.28 | 1.28 | 0 |
| `tax.list` | 1 | 1.87 | 1.87 | 1.87 | 1.87 | 1.87 | 0 |
| `unit.delete` | 1 | 9.09 | 9.09 | 9.09 | 9.09 | 9.09 | 0 |
| `unit.list` | 1 | 17.29 | 17.29 | 17.29 | 17.29 | 17.29 | 0 |
| `unit.upsert` | 3 | 23.97 | 12.82 | 39.26 | 19.84 | 39.26 | 0 |
## SQLite (BetterSqlite3Provider) Detailed Breakdown
| API Method | Calls | Avg (ms) | Min (ms) | Max (ms) | P50 (ms) | P95 (ms) | Errors |
| :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| `article.addImage` | 4 | 35.62 | 13.96 | 44.76 | 41.95 | 44.76 | 0 |
| `article.createUnderParent` | 19 | 0.53 | 0.46 | 0.92 | 0.50 | 0.92 | 0 |
| `article.delete` | 1 | 0.64 | 0.64 | 0.64 | 0.64 | 0.64 | 0 |
| `article.deleteImage` | 1 | 0.85 | 0.85 | 0.85 | 0.85 | 0.85 | 0 |
| `article.getBySku` | 2 | 0.68 | 0.59 | 0.76 | 0.76 | 0.76 | 0 |
| `article.getHistoryBySku` | 2 | 0.32 | 0.29 | 0.35 | 0.35 | 0.35 | 0 |
| `article.importRows` | 1 | 2.45 | 2.45 | 2.45 | 2.45 | 2.45 | 0 |
| `article.listExport` | 4 | 0.85 | 0.64 | 1.27 | 0.80 | 1.27 | 0 |
| `article.listSearchIndex` | 2 | 0.54 | 0.46 | 0.61 | 0.61 | 0.61 | 0 |
| `article.orderImages` | 3 | 0.50 | 0.36 | 0.71 | 0.43 | 0.71 | 0 |
| `article.setBrandIdBySku` | 18 | 0.58 | 0.53 | 0.78 | 0.56 | 0.78 | 0 |
| `article.setCategoryIdsBySku` | 18 | 0.74 | 0.70 | 0.99 | 0.72 | 0.99 | 0 |
| `article.setEansBySku` | 18 | 0.57 | 0.50 | 0.96 | 0.53 | 0.96 | 0 |
| `article.setFatherBySku` | 13 | 0.66 | 0.59 | 1.00 | 0.63 | 1.00 | 0 |
| `article.setPricesBySku` | 18 | 0.68 | 0.63 | 1.10 | 0.65 | 1.10 | 0 |
| `article.setWeightBySku` | 18 | 0.53 | 0.49 | 0.68 | 0.51 | 0.68 | 0 |
| `article.updateBySku` | 18 | 0.82 | 0.73 | 1.61 | 0.76 | 1.61 | 0 |
| `articlesupplier.create` | 19 | 0.56 | 0.50 | 1.05 | 0.52 | 1.05 | 0 |
| `articlesupplier.delete` | 1 | 0.40 | 0.40 | 0.40 | 0.40 | 0.40 | 0 |
| `articlesupplier.listByArticleSku` | 2 | 0.25 | 0.23 | 0.26 | 0.26 | 0.26 | 0 |
| `articlesupplier.listByEntityAndSkus` | 2 | 0.44 | 0.36 | 0.52 | 0.52 | 0.52 | 0 |
| `articlesupplier.listBySupplierAndSkus` | 2 | 0.37 | 0.35 | 0.38 | 0.38 | 0.38 | 0 |
| `article.addImage` | 4 | 35.52 | 13.14 | 44.72 | 43.84 | 44.72 | 0 |
| `article.createUnderParent` | 19 | 0.53 | 0.46 | 0.99 | 0.51 | 0.99 | 0 |
| `article.delete` | 1 | 0.62 | 0.62 | 0.62 | 0.62 | 0.62 | 0 |
| `article.deleteImage` | 1 | 0.90 | 0.90 | 0.90 | 0.90 | 0.90 | 0 |
| `article.getBySku` | 2 | 0.69 | 0.60 | 0.78 | 0.78 | 0.78 | 0 |
| `article.getHistoryBySku` | 2 | 0.29 | 0.26 | 0.31 | 0.31 | 0.31 | 0 |
| `article.importRows` | 1 | 2.43 | 2.43 | 2.43 | 2.43 | 2.43 | 0 |
| `article.listExport` | 4 | 0.87 | 0.64 | 1.29 | 0.81 | 1.29 | 0 |
| `article.listSearchIndex` | 2 | 0.55 | 0.47 | 0.63 | 0.63 | 0.63 | 0 |
| `article.orderImages` | 3 | 0.50 | 0.39 | 0.70 | 0.41 | 0.70 | 0 |
| `article.setBrandIdBySku` | 18 | 0.57 | 0.53 | 0.81 | 0.55 | 0.81 | 0 |
| `article.setCategoryIdsBySku` | 18 | 0.74 | 0.69 | 1.01 | 0.73 | 1.01 | 0 |
| `article.setEansBySku` | 18 | 0.56 | 0.51 | 0.85 | 0.54 | 0.85 | 0 |
| `article.setFatherBySku` | 13 | 0.66 | 0.60 | 0.92 | 0.63 | 0.92 | 0 |
| `article.setPricesBySku` | 18 | 0.69 | 0.63 | 1.12 | 0.65 | 1.12 | 0 |
| `article.setWeightBySku` | 18 | 0.52 | 0.49 | 0.68 | 0.51 | 0.68 | 0 |
| `article.updateBySku` | 18 | 0.83 | 0.73 | 1.65 | 0.78 | 1.65 | 0 |
| `articlesupplier.create` | 19 | 0.58 | 0.50 | 1.03 | 0.54 | 1.03 | 0 |
| `articlesupplier.delete` | 1 | 0.43 | 0.43 | 0.43 | 0.43 | 0.43 | 0 |
| `articlesupplier.listByArticleSku` | 2 | 0.27 | 0.25 | 0.29 | 0.29 | 0.29 | 0 |
| `articlesupplier.listByEntityAndSkus` | 2 | 0.44 | 0.36 | 0.51 | 0.51 | 0.51 | 0 |
| `articlesupplier.listBySupplierAndSkus` | 2 | 0.35 | 0.35 | 0.36 | 0.36 | 0.36 | 0 |
| `articlesupplier.order` | 18 | 0.29 | 0.27 | 0.49 | 0.28 | 0.49 | 0 |
| `articlesupplier.update` | 18 | 0.42 | 0.36 | 0.79 | 0.40 | 0.79 | 0 |
| `articlesupplier.update` | 18 | 0.42 | 0.36 | 0.79 | 0.39 | 0.79 | 0 |
| `brand.delete` | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| `brand.list` | 1 | 0.26 | 0.26 | 0.26 | 0.26 | 0.26 | 0 |
| `brand.upsert` | 3 | 0.26 | 0.22 | 0.30 | 0.25 | 0.30 | 0 |
| `category.addImage` | 2 | 43.22 | 22.62 | 63.83 | 63.83 | 63.83 | 0 |
| `category.createUnderParent` | 10 | 0.39 | 0.30 | 0.85 | 0.33 | 0.85 | 0 |
| `category.delete` | 1 | 0.24 | 0.24 | 0.24 | 0.24 | 0.24 | 0 |
| `category.deleteImage` | 1 | 0.36 | 0.36 | 0.36 | 0.36 | 0.36 | 0 |
| `category.ensureByPath` | 1 | 0.59 | 0.59 | 0.59 | 0.59 | 0.59 | 0 |
| `category.getCategoryArticles` | 2 | 0.39 | 0.37 | 0.42 | 0.42 | 0.42 | 0 |
| `category.getTreeForCompany` | 2 | 0.70 | 0.65 | 0.76 | 0.76 | 0.76 | 0 |
| `category.move` | 1 | 0.49 | 0.49 | 0.49 | 0.49 | 0.49 | 0 |
| `category.order` | 1 | 0.40 | 0.40 | 0.40 | 0.40 | 0.40 | 0 |
| `category.rename` | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| `company.create` | 2 | 1.10 | 0.78 | 1.41 | 1.41 | 1.41 | 0 |
| `brand.upsert` | 3 | 0.26 | 0.23 | 0.31 | 0.24 | 0.31 | 0 |
| `category.addImage` | 2 | 43.24 | 20.54 | 65.95 | 65.95 | 65.95 | 0 |
| `category.createUnderParent` | 10 | 0.41 | 0.31 | 0.93 | 0.36 | 0.93 | 0 |
| `category.delete` | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| `category.deleteImage` | 1 | 0.29 | 0.29 | 0.29 | 0.29 | 0.29 | 0 |
| `category.ensureByPath` | 1 | 0.66 | 0.66 | 0.66 | 0.66 | 0.66 | 0 |
| `category.getCategoryArticles` | 2 | 0.40 | 0.38 | 0.42 | 0.42 | 0.42 | 0 |
| `category.getTreeForCompany` | 2 | 0.73 | 0.69 | 0.77 | 0.77 | 0.77 | 0 |
| `category.move` | 1 | 0.53 | 0.53 | 0.53 | 0.53 | 0.53 | 0 |
| `category.order` | 1 | 0.39 | 0.39 | 0.39 | 0.39 | 0.39 | 0 |
| `category.rename` | 1 | 0.26 | 0.26 | 0.26 | 0.26 | 0.26 | 0 |
| `company.create` | 2 | 1.15 | 0.82 | 1.48 | 1.48 | 1.48 | 0 |
| `company.delete` | 1 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0 |
| `company.list` | 1 | 0.26 | 0.26 | 0.26 | 0.26 | 0.26 | 0 |
| `company.list` | 1 | 0.29 | 0.29 | 0.29 | 0.29 | 0.29 | 0 |
| `company.update` | 1 | 0.50 | 0.50 | 0.50 | 0.50 | 0.50 | 0 |
| `companysetting.get` | 1 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0 |
| `companysetting.list` | 3 | 0.21 | 0.16 | 0.24 | 0.22 | 0.24 | 0 |
| `companysetting.set` | 2 | 0.35 | 0.29 | 0.42 | 0.42 | 0.42 | 0 |
| `companysetting.get` | 1 | 0.24 | 0.24 | 0.24 | 0.24 | 0.24 | 0 |
| `companysetting.list` | 3 | 0.22 | 0.17 | 0.32 | 0.18 | 0.32 | 0 |
| `companysetting.set` | 2 | 0.36 | 0.28 | 0.44 | 0.44 | 0.44 | 0 |
| `companyuser.add` | 1 | 0.12 | 0.12 | 0.12 | 0.12 | 0.12 | 0 |
| `companyuser.delete` | 1 | 0.10 | 0.10 | 0.10 | 0.10 | 0.10 | 0 |
| `companyuser.getByEmail` | 1 | 0.11 | 0.11 | 0.11 | 0.11 | 0.11 | 0 |
| `customergroup.create` | 3 | 0.30 | 0.24 | 0.38 | 0.29 | 0.38 | 0 |
| `customergroup.delete` | 1 | 0.28 | 0.28 | 0.28 | 0.28 | 0.28 | 0 |
| `customergroup.list` | 2 | 0.19 | 0.17 | 0.21 | 0.21 | 0.21 | 0 |
| `customergroup.create` | 3 | 0.32 | 0.24 | 0.43 | 0.29 | 0.43 | 0 |
| `customergroup.delete` | 1 | 0.27 | 0.27 | 0.27 | 0.27 | 0.27 | 0 |
| `customergroup.list` | 2 | 0.20 | 0.17 | 0.22 | 0.22 | 0.22 | 0 |
| `customergroup.order` | 1 | 0.41 | 0.41 | 0.41 | 0.41 | 0.41 | 0 |
| `customergroup.update` | 1 | 0.33 | 0.33 | 0.33 | 0.33 | 0.33 | 0 |
| `delivery.create` | 7 | 9.48 | 0.67 | 62.06 | 0.74 | 62.06 | 0 |
| `customergroup.update` | 1 | 0.34 | 0.34 | 0.34 | 0.34 | 0.34 | 0 |
| `delivery.create` | 7 | 9.73 | 0.70 | 63.60 | 0.75 | 63.60 | 0 |
| `delivery.delete` | 1 | 0.26 | 0.26 | 0.26 | 0.26 | 0.26 | 0 |
| `delivery.getById` | 2 | 0.50 | 0.29 | 0.72 | 0.72 | 0.72 | 0 |
| `delivery.list` | 2 | 0.33 | 0.28 | 0.38 | 0.38 | 0.38 | 0 |
| `delivery.update` | 6 | 0.52 | 0.36 | 1.13 | 0.39 | 1.13 | 0 |
| `entity.create` | 7 | 0.48 | 0.39 | 0.89 | 0.42 | 0.89 | 0 |
| `delivery.getById` | 2 | 0.47 | 0.26 | 0.68 | 0.68 | 0.68 | 0 |
| `delivery.list` | 2 | 0.33 | 0.28 | 0.39 | 0.39 | 0.39 | 0 |
| `delivery.update` | 6 | 0.53 | 0.37 | 1.11 | 0.41 | 1.11 | 0 |
| `entity.create` | 7 | 0.51 | 0.43 | 0.91 | 0.43 | 0.91 | 0 |
| `entity.delete` | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| `entity.getById` | 2 | 0.18 | 0.15 | 0.21 | 0.21 | 0.21 | 0 |
| `entity.isNumberFree` | 6 | 0.17 | 0.15 | 0.24 | 0.16 | 0.24 | 0 |
| `entity.list` | 4 | 0.25 | 0.19 | 0.36 | 0.24 | 0.36 | 0 |
| `entity.peekNextNumber` | 6 | 0.24 | 0.20 | 0.39 | 0.22 | 0.39 | 0 |
| `entityaddress.create` | 7 | 0.33 | 0.27 | 0.59 | 0.29 | 0.59 | 0 |
| `entityaddress.delete` | 1 | 0.28 | 0.28 | 0.28 | 0.28 | 0.28 | 0 |
| `entityaddress.list` | 2 | 0.30 | 0.26 | 0.35 | 0.35 | 0.35 | 0 |
| `entityaddress.update` | 6 | 0.38 | 0.33 | 0.56 | 0.35 | 0.56 | 0 |
| `entitycontact.create` | 7 | 0.28 | 0.24 | 0.41 | 0.27 | 0.41 | 0 |
| `entity.isNumberFree` | 6 | 0.18 | 0.16 | 0.25 | 0.17 | 0.25 | 0 |
| `entity.list` | 4 | 0.23 | 0.19 | 0.28 | 0.22 | 0.28 | 0 |
| `entity.peekNextNumber` | 6 | 0.25 | 0.21 | 0.41 | 0.22 | 0.41 | 0 |
| `entityaddress.create` | 7 | 0.34 | 0.28 | 0.60 | 0.30 | 0.60 | 0 |
| `entityaddress.delete` | 1 | 0.27 | 0.27 | 0.27 | 0.27 | 0.27 | 0 |
| `entityaddress.list` | 2 | 0.25 | 0.21 | 0.29 | 0.29 | 0.29 | 0 |
| `entityaddress.update` | 6 | 0.39 | 0.34 | 0.59 | 0.36 | 0.59 | 0 |
| `entitycontact.create` | 7 | 0.29 | 0.26 | 0.41 | 0.28 | 0.41 | 0 |
| `entitycontact.delete` | 1 | 0.26 | 0.26 | 0.26 | 0.26 | 0.26 | 0 |
| `entitycontact.list` | 2 | 0.25 | 0.20 | 0.30 | 0.30 | 0.30 | 0 |
| `entitycontact.update` | 6 | 0.33 | 0.29 | 0.46 | 0.31 | 0.46 | 0 |
| `google_auth.add` | 3 | 0.21 | 0.08 | 0.42 | 0.13 | 0.42 | 0 |
| `google_auth.getByEmail` | 2 | 0.06 | 0.04 | 0.09 | 0.09 | 0.09 | 0 |
| `google_auth.getById` | 2 | 0.09 | 0.07 | 0.10 | 0.10 | 0.10 | 0 |
| `entitycontact.list` | 2 | 0.23 | 0.20 | 0.26 | 0.26 | 0.26 | 0 |
| `entitycontact.update` | 6 | 0.34 | 0.30 | 0.49 | 0.33 | 0.49 | 0 |
| `google_auth.add` | 3 | 0.22 | 0.08 | 0.46 | 0.12 | 0.46 | 0 |
| `google_auth.getByEmail` | 2 | 0.06 | 0.05 | 0.07 | 0.07 | 0.07 | 0 |
| `google_auth.getById` | 2 | 0.07 | 0.06 | 0.08 | 0.08 | 0.08 | 0 |
| `google_auth.listAllowedEmails` | 1 | 0.14 | 0.14 | 0.14 | 0.14 | 0.14 | 0 |
| `google_auth.removeAllowedEmail` | 1 | 0.09 | 0.09 | 0.09 | 0.09 | 0.09 | 0 |
| `google_auth.setProfile` | 1 | 0.16 | 0.16 | 0.16 | 0.16 | 0.16 | 0 |
| `google_auth.removeAllowedEmail` | 1 | 0.10 | 0.10 | 0.10 | 0.10 | 0.10 | 0 |
| `google_auth.setProfile` | 1 | 0.17 | 0.17 | 0.17 | 0.17 | 0.17 | 0 |
| `google_auth.setSelectedCompany` | 2 | 0.07 | 0.05 | 0.08 | 0.08 | 0.08 | 0 |
| `lang.create` | 2 | 0.07 | 0.07 | 0.07 | 0.07 | 0.07 | 0 |
| `lang.delete` | 1 | 0.12 | 0.12 | 0.12 | 0.12 | 0.12 | 0 |
| `lang.delete` | 1 | 0.11 | 0.11 | 0.11 | 0.11 | 0.11 | 0 |
| `lang.ensure` | 2 | 0.10 | 0.09 | 0.11 | 0.11 | 0.11 | 0 |
| `lang.getByIso639` | 1 | 0.05 | 0.05 | 0.05 | 0.05 | 0.05 | 0 |
| `lang.list` | 1 | 0.06 | 0.06 | 0.06 | 0.06 | 0.06 | 0 |
| `manifestattachment.add` | 3 | 35.65 | 1.22 | 55.34 | 50.41 | 55.34 | 0 |
| `manifestattachment.getById` | 2 | 0.75 | 0.65 | 0.85 | 0.85 | 0.85 | 0 |
| `manifestattachment.listByManifestId` | 3 | 0.61 | 0.51 | 0.70 | 0.61 | 0.70 | 0 |
| `manifestattachment.order` | 1 | 0.54 | 0.54 | 0.54 | 0.54 | 0.54 | 0 |
| `manifestattachment.remove` | 1 | 0.86 | 0.86 | 0.86 | 0.86 | 0.86 | 0 |
| `numbers.list` | 1 | 0.27 | 0.27 | 0.27 | 0.27 | 0.27 | 0 |
| `order.create` | 7 | 0.50 | 0.40 | 0.69 | 0.45 | 0.69 | 0 |
| `manifestattachment.add` | 3 | 35.59 | 1.32 | 55.74 | 49.72 | 55.74 | 0 |
| `manifestattachment.getById` | 2 | 0.83 | 0.72 | 0.94 | 0.94 | 0.94 | 0 |
| `manifestattachment.listByManifestId` | 3 | 0.61 | 0.52 | 0.72 | 0.58 | 0.72 | 0 |
| `manifestattachment.order` | 1 | 0.56 | 0.56 | 0.56 | 0.56 | 0.56 | 0 |
| `manifestattachment.remove` | 1 | 0.85 | 0.85 | 0.85 | 0.85 | 0.85 | 0 |
| `numbers.list` | 1 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0 |
| `order.create` | 7 | 0.53 | 0.41 | 0.69 | 0.47 | 0.69 | 0 |
| `order.delete` | 1 | 0.24 | 0.24 | 0.24 | 0.24 | 0.24 | 0 |
| `order.getById` | 2 | 0.24 | 0.21 | 0.28 | 0.28 | 0.28 | 0 |
| `order.list` | 2 | 0.21 | 0.17 | 0.25 | 0.25 | 0.25 | 0 |
| `order.update` | 6 | 0.34 | 0.28 | 0.53 | 0.29 | 0.53 | 0 |
| `pic.getImageByHash` | 2 | 0.66 | 0.59 | 0.74 | 0.74 | 0.74 | 0 |
| `pic.getThumbByHash` | 2 | 0.71 | 0.66 | 0.76 | 0.76 | 0.76 | 0 |
| `order.getById` | 2 | 0.23 | 0.22 | 0.25 | 0.25 | 0.25 | 0 |
| `order.list` | 2 | 0.21 | 0.16 | 0.26 | 0.26 | 0.26 | 0 |
| `order.update` | 6 | 0.36 | 0.28 | 0.57 | 0.30 | 0.57 | 0 |
| `pic.getImageByHash` | 2 | 0.71 | 0.61 | 0.82 | 0.82 | 0.82 | 0 |
| `pic.getThumbByHash` | 2 | 0.64 | 0.57 | 0.70 | 0.70 | 0.70 | 0 |
| `posterminal.delete` | 1 | 0.21 | 0.21 | 0.21 | 0.21 | 0.21 | 0 |
| `posterminal.getCategoryPosterminalIds` | 1 | 0.11 | 0.11 | 0.11 | 0.11 | 0.11 | 0 |
| `posterminal.list` | 3 | 0.18 | 0.15 | 0.19 | 0.19 | 0.19 | 0 |
| `posterminal.setOff` | 1 | 0.38 | 0.38 | 0.38 | 0.38 | 0.38 | 0 |
| `posterminal.setOffAll` | 1 | 0.30 | 0.30 | 0.30 | 0.30 | 0.30 | 0 |
| `posterminal.setOn` | 1 | 0.41 | 0.41 | 0.41 | 0.41 | 0.41 | 0 |
| `posterminal.setOnAll` | 1 | 0.54 | 0.54 | 0.54 | 0.54 | 0.54 | 0 |
| `posterminal.upsert` | 3 | 0.27 | 0.19 | 0.35 | 0.28 | 0.35 | 0 |
| `quote.create` | 7 | 0.61 | 0.39 | 1.21 | 0.53 | 1.21 | 0 |
| `posterminal.list` | 3 | 0.19 | 0.15 | 0.21 | 0.19 | 0.21 | 0 |
| `posterminal.setOff` | 1 | 0.42 | 0.42 | 0.42 | 0.42 | 0.42 | 0 |
| `posterminal.setOffAll` | 1 | 0.32 | 0.32 | 0.32 | 0.32 | 0.32 | 0 |
| `posterminal.setOn` | 1 | 0.45 | 0.45 | 0.45 | 0.45 | 0.45 | 0 |
| `posterminal.setOnAll` | 1 | 0.57 | 0.57 | 0.57 | 0.57 | 0.57 | 0 |
| `posterminal.upsert` | 3 | 0.29 | 0.19 | 0.44 | 0.25 | 0.44 | 0 |
| `quote.create` | 7 | 0.62 | 0.39 | 1.33 | 0.52 | 1.33 | 0 |
| `quote.delete` | 1 | 0.24 | 0.24 | 0.24 | 0.24 | 0.24 | 0 |
| `quote.getById` | 2 | 0.23 | 0.23 | 0.23 | 0.23 | 0.23 | 0 |
| `quote.list` | 2 | 0.20 | 0.17 | 0.23 | 0.23 | 0.23 | 0 |
| `quote.update` | 6 | 0.36 | 0.29 | 0.66 | 0.31 | 0.66 | 0 |
| `supplier.create` | 4 | 0.41 | 0.33 | 0.63 | 0.34 | 0.63 | 0 |
| `quote.getById` | 2 | 0.22 | 0.21 | 0.24 | 0.24 | 0.24 | 0 |
| `quote.list` | 2 | 0.21 | 0.17 | 0.24 | 0.24 | 0.24 | 0 |
| `quote.update` | 6 | 0.37 | 0.29 | 0.64 | 0.33 | 0.64 | 0 |
| `supplier.create` | 4 | 0.43 | 0.34 | 0.68 | 0.35 | 0.68 | 0 |
| `supplier.delete` | 1 | 0.30 | 0.30 | 0.30 | 0.30 | 0.30 | 0 |
| `supplier.list` | 3 | 0.20 | 0.16 | 0.26 | 0.16 | 0.26 | 0 |
| `supplier.update` | 3 | 0.42 | 0.30 | 0.58 | 0.39 | 0.58 | 0 |
| `tax.create` | 1 | 0.08 | 0.08 | 0.08 | 0.08 | 0.08 | 0 |
| `tax.ensure` | 2 | 0.06 | 0.06 | 0.06 | 0.06 | 0.06 | 0 |
| `supplier.list` | 3 | 0.21 | 0.17 | 0.28 | 0.17 | 0.28 | 0 |
| `supplier.update` | 3 | 0.45 | 0.31 | 0.62 | 0.43 | 0.62 | 0 |
| `tax.create` | 1 | 0.09 | 0.09 | 0.09 | 0.09 | 0.09 | 0 |
| `tax.ensure` | 2 | 0.07 | 0.05 | 0.09 | 0.09 | 0.09 | 0 |
| `tax.getByRate` | 1 | 0.05 | 0.05 | 0.05 | 0.05 | 0.05 | 0 |
| `tax.list` | 1 | 0.07 | 0.07 | 0.07 | 0.07 | 0.07 | 0 |
| `unit.delete` | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| `unit.list` | 1 | 0.29 | 0.29 | 0.29 | 0.29 | 0.29 | 0 |
| `unit.upsert` | 3 | 0.52 | 0.32 | 0.78 | 0.47 | 0.78 | 0 |
| `unit.list` | 1 | 0.28 | 0.28 | 0.28 | 0.28 | 0.28 | 0 |
| `unit.upsert` | 3 | 0.54 | 0.33 | 0.82 | 0.46 | 0.82 | 0 |