mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	better placement of slow query detection
This commit is contained in:
		| @@ -66,7 +66,7 @@ async function rollback() { | |||||||
| } | } | ||||||
|  |  | ||||||
| async function getRow(query, params = []) { | async function getRow(query, params = []) { | ||||||
|     return await wrap(async db => db.get(query, ...params)); |     return await wrap(async db => db.get(query, ...params), query); | ||||||
| } | } | ||||||
|  |  | ||||||
| async function getRowOrNull(query, params = []) { | async function getRowOrNull(query, params = []) { | ||||||
| @@ -106,7 +106,7 @@ async function getManyRows(query, params) { | |||||||
| } | } | ||||||
|  |  | ||||||
| async function getRows(query, params = []) { | async function getRows(query, params = []) { | ||||||
|     return await wrap(async db => db.all(query, ...params)); |     return await wrap(async db => db.all(query, ...params), query); | ||||||
| } | } | ||||||
|  |  | ||||||
| async function getMap(query, params = []) { | async function getMap(query, params = []) { | ||||||
| @@ -140,16 +140,7 @@ async function getColumn(query, params = []) { | |||||||
| } | } | ||||||
|  |  | ||||||
| async function execute(query, params = []) { | async function execute(query, params = []) { | ||||||
|     const startTimestamp = Date.now(); |     return await wrap(async db => db.run(query, ...params), query); | ||||||
|  |  | ||||||
|     const result = await wrap(async db => db.run(query, ...params)); |  | ||||||
|  |  | ||||||
|     const milliseconds = Date.now() - startTimestamp; |  | ||||||
|     if (milliseconds >= 200) { |  | ||||||
|         log.info(`Slow query took ${milliseconds}ms: ${query}`); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return result; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| async function executeMany(query, params) { | async function executeMany(query, params) { | ||||||
| @@ -158,14 +149,28 @@ async function executeMany(query, params) { | |||||||
| } | } | ||||||
|  |  | ||||||
| async function executeScript(query) { | async function executeScript(query) { | ||||||
|     return await wrap(async db => db.exec(query)); |     return await wrap(async db => db.exec(query), query); | ||||||
| } | } | ||||||
|  |  | ||||||
| async function wrap(func) { | async function wrap(func, query) { | ||||||
|     const thisError = new Error(); |     const thisError = new Error(); | ||||||
|  |  | ||||||
|     try { |     try { | ||||||
|         return await func(dbConnection); |         const startTimestamp = Date.now(); | ||||||
|  |  | ||||||
|  |         const result = await func(dbConnection); | ||||||
|  |  | ||||||
|  |         const milliseconds = Date.now() - startTimestamp; | ||||||
|  |         if (milliseconds >= 200) { | ||||||
|  |             if (query.includes("WITH RECURSIVE")) { | ||||||
|  |                 log.info(`Slow recursive query took ${milliseconds}ms.`); | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|  |                 log.info(`Slow query took ${milliseconds}ms: ${query}`); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return result; | ||||||
|     } |     } | ||||||
|     catch (e) { |     catch (e) { | ||||||
|         log.error("Error executing query. Inner exception: " + e.stack + thisError.stack); |         log.error("Error executing query. Inner exception: " + e.stack + thisError.stack); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user