code: func CountStmtNode(stmtNode ast.StmtNode, inRestrictedSQL bool) {
  	if inRestrictedSQL {
  		return
  	}
  
  	typeLabel := GetStmtLabel(stmtNode)
  	switch typeLabel {
  	case "Use":
  		stmtNodeCounterUse.Inc()
  	case "Show":
  		stmtNodeCounterShow.Inc()
  	case "Begin":
  		stmtNodeCounterBegin.Inc()
  	case "Commit":
  		stmtNodeCounterCommit.Inc()
  	case "Rollback":
  		stmtNodeCounterRollback.Inc()
  	case "Insert":
  		stmtNodeCounterInsert.Inc()
  	case "Replace":
  		stmtNodeCounterReplace.Inc()
  	case "Delete":
  		stmtNodeCounterDelete.Inc()
  	case "Update":
  		stmtNodeCounterUpdate.Inc()
  	case "Select":
  		stmtNodeCounterSelect.Inc()
  	default:
  		metrics.StmtNodeCounter.WithLabelValues(typeLabel).Inc()
  	}
  
  	if !config.GetGlobalConfig().Status.RecordQPSbyDB {
  		return
  	}
  
  	dbLabels := getStmtDbLabel(stmtNode)
  	for dbLabel := range dbLabels {
  		metrics.DbStmtNodeCounter.WithLabelValues(dbLabel, typeLabel).Inc()
  	}
  }
docs: // CountStmtNode records the number of statements with the same type.