mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +01:00 
			
		
		
		
	better placement of slow query detection
This commit is contained in:
		
							parent
							
								
									d57caee0d3
								
							
						
					
					
						commit
						8c3e2e5eb7
					
				@ -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);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user