SQL 커서를 열어 두는 '합리적인' 시간이란 무엇인가요?

애플리케이션에서 트랜잭션을 커밋하거나 롤백하기 전에 트랜잭션을 열어두는 데 걸리는 '긴 시간'은 얼마나 되나요? 분? 초? 몇 시간?

그리고 어떤 데이터베이스에서?

아마 비난을 받을 수도 있겠지만, 커서는 성능에 심각한 타격을 주므로 가급적 커서 사용을 피해야 합니다. 꼭 사용해야 한다면 가능한 한 최소한의 시간 동안만 열어두어 커서로 인해 차단된 리소스를 최대한 빨리 확보해야 합니다.

해설 (0)

트랜잭션: 분.

커서: 최대 0초, 커서를 사용하면 해고됩니다.

**고가용성 웹 환경에서 SQL Server를 실행해야 하고, 정확한 버전 관리 및 유지 관리가 불가능하기 때문에 저장 프로시저도 허용하지 않는다는 점을 고려하면 이는 터무니없는 일이 아닙니다. 만약 우리가 오라클을 사용했다면

해설 (1)

일반적으로 다른 답변에 동의합니다: 가능하면 커서를 사용하지 말고(대부분의 경우) 가능한 한 빨리 커서를 닫습니다.

하지만: 작업하는 환경에 따라 다릅니다.

  • 사용자가 많은 프로덕션 웹사이트 환경이라면 누군가 시간 초과를 요청하기 전에 커서가 사라지는지 확인하세요.
  • 예를 들어 다른 작업을 하지 않는 전용 컴퓨터에서 저장 프로시저를 분석하는 로그(또는 기타)를 작성하는 경우: 원하는 작업을 마음대로 하세요. 기다릴 사람은 당신뿐이다. 커서를 사용한다고 해서 데이터베이스 서버가 죽는 것도 아니다. 하지만 시간이 지남에 따라 사용 행태가 바뀔 수 있고 언젠가는 10명이 그 애플리케이션을 사용할 수도 있다는 점을 고려해야 합니다. 그러니 다른 방법을 찾아보세요 ;)
해설 (0)
해결책

@lomaxx, @ChanChan: 단지 내 지식 · 사이베이스 SQL Server 에 문제가 가장 커서 (T-SQL 변형). 데이터베이스 커서 선택은 경우 Oracle 관심용 선택할 수 있는 친구. # 39, 많은 경우에 i& ve seen the use of 커서 사실상 성능이 향상됩니다. 커서 () 는 매우 유용한 메커니즘을 사용하는 경우, 우리는 볼지옥으로 you&quot 커서 말하였 tbh) 와 같은 것들을 &quot. 좀 웃기는.

이러한 점을 고려하면, 유지하는 데 반드시 필요한 경우에만 로렌아줌마가 커서 절대 최소값보다 열립니다. 임의의 및 무의미한 시간 specifying 최대 이해 없이 다음도메인 문제가 될 수 있다.

해설 (0)

@ninesided: # 39, s 도 it& 성능 문제 등을 위한 최적의 도구 사용에 대한 죠브 커서가 이동할 수 있는 점을 고려할 때, 난 것 같은데 100 명 중 99 로 쿼리하지 out of your 초과되기 코드를 넣을 수 있는 일종의 관리 코드 논리를 루프을 게 좋을 것 같다. 이렇게 하면 시간이 디버거를 사용하는 장점을 활용할 수 있도록 지원합니다 컴파일하십시오 오류 검사 mm_mail_doc. 사프트리 상술합니다.

내 질문에 대한 답을 you& # 39 는 계속 같은 경우, re 커서, oracle 에서 사용하는 닫으십시오 ASAP I&; d # 39 명시성 사용하려고 하는 경우도 있다.

해설 (0)