mongodb: 집계 명령의 실행 시간을 어떻게 볼 수 있습니까?
mongo shell에서 다음 mongodb 명령을 실행합니다.
db.coll.aggregate(...)
그리고 결과 목록을 봅니다. 하지만 쿼리 실행 시간을 볼 수 있습니까?집계 쿼리에 대한 방법을 설명할 수 있는 동등한 기능이 있습니까?
var before = new Date()
#aggregation query
var after = new Date()
execution_mills = after - before
추가할 수 있습니다.time파일에 대한 기능(홈 디렉토리):
function time(command) {
const t1 = new Date();
const result = command();
const t2 = new Date();
print("time: " + (t2 - t1) + "ms");
return result;
}
그런 다음 다음과 같이 사용할 수 있습니다.
time(() => db.coll.aggregate(...))
주의.
이 방법은 다음과 관련된 결과를 제공하지 않습니다.db.collection.find()
나는 mongodb에서 이 두 가지 명령을 사용할 가능성이 있다는 것을 알 수 있습니다.
db.set 프로파일링 수준(2)
쿼리 후에 db.system을 사용할 수 있습니다.profile.find()는 쿼리 실행 시간 및 기타를 확인합니다.
아니면 모든 쿼리를 자동으로 실행하는 우수한 몽고 해커를 설치할 수 있습니다.pretty()적합, 출력 색상 지정, 키 정렬 등:

제가 이것을 더 잘 설명하기 위해 답변을 쓰겠습니다.
기본적으로 집계 프레임워크에 대한 설명() 기능은 아직 없습니다. https://jira.mongodb.org/browse/SERVER-4504
그러나 클라이언트 측면을 측정하는 방법이 있지만 단점이 없는 것은 아닙니다.
- 데이터베이스를 측정하고 있지 않습니다.
- 응용 프로그램을 측정하는 중입니다.
- 정확한 판독이 불가능할 정도로 부품 사이에 알 수 없는 부분이 너무 많습니다. 즉, 문서 결과가 MongoDB 서버에 의해 공식화되고 직렬화되어 유선으로 전송되는 데 0.04ms가 걸렸다고 할 수 없습니다.앱에서 삭제된 다음 해시에 저장되므로 집계 벤치마크를 얻기 위해 총합에서 해당 합계를 뺄 수 있습니다.
그러나, 당신은 그것을 같은 서버의 MongoDB 콘솔에서 실행함으로써 약간의 정확한 결과를 얻을 수 있을 것입니다.mongos/mongod이것은 그 사이에 거의 만들어지지 않을 것이고, 여전히 너무 많지만 여러분이 대략 믿을 수 있는 독서를 얻기에는 충분할 것입니다.따라서 당신은 그 위치에서 @ 자고룰킨의 대답을 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/14021605/mongodb-how-can-i-see-the-execution-time-for-the-aggregate-command
'programing' 카테고리의 다른 글
| Oracle에 연결된 SQL Server에서 SQL 쿼리를 작성할 때 날짜 리터럴을 지정하려면 어떻게 해야 합니까? (0) | 2023.06.20 |
|---|---|
| 캐시를 비우고 모든 대상 Xcode 4 이상을 정리하는 방법 (0) | 2023.06.20 |
| 표의 총 열 수를 sql로 가져오는 방법 (0) | 2023.06.20 |
| 양식 데이터를 JSON으로 직렬화 (0) | 2023.06.20 |
| Python 사전에서 URL 매개 변수 (0) | 2023.06.20 |