Files
dashlibstorage/BENCHMARK_REPORT.md
2026-09-22 08:31:01 +02:00

131 lines
8.3 KiB
Markdown

# Database Drivers API Timing & Benchmark Report
- **Date**: 2026-09-22T06:09:22.346Z
- **Scale**: small
- **Read Iterations on Filled DB**: 2
## 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 |
| `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 |
| `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 |
| `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.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 |
| `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.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 |
| `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 |
| `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 |
| `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 |
| `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.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.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 |
| `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 |
| `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 |
| `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 |
| `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 |
| `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 |