5. 5
Information_schema 과다 조회?
Check Parameters Option
Check Parameter = True 시 인자의 개수 와 name 만 맞으면 OK.
순서는 중요하지 않음
하지만 MySQL Connector 가 해당 parameter binding 을 위해
내부적으로 매번 information schema 조회하면서 tmp table 생성 → 성능저하
Check Parameter = False 로 하여
Parameter 개수는 물론 순서가 맞지 않을 시에는 Exception 이 발생하도록 하자!
7. 7
ROW_COUNT() 유의사항 (Workbench Connection vs MySQL Connector .NET)
affect_row vs matched_row
affect_row : CASE WHEN 절의 조건에 포함되어, 실제 Update 가 일어난 row 수
matched_row : WHERE 절의 조건을 만족하는 row 수
8. 8
affect_row vs matched_row
SUCCESS Case
FAIL Case
의도한 대로 ROW_COUNT() 가 affected_row 로
집계되어, 체크건수와 실제업데이트건수가 맞지
않은 경우 IF 문에 의해실패 처리됨
(실제 2가지의 rune 모두 업데이트 되지 않음 )
on Workbench Connection
ROW_COUNT() 유의사항 (Workbench Connection vs MySQL Connector .NET)
9. 9
affect_row vs matched_row
의도한 것과 달리,
IF 문 체크가 되지 않아,
Result 는 0 으로 리턴되고 실제 gold 도 증가함
on MySQL Connector .NET
ROW_COUNT() 유의사항 (Workbench Connection vs MySQL Connector .NET)
10. 10
Unexpected result on ROW_COUNT()
Connection String option 에 따라 MySQL .NET Connector 에서 실행한 Procedure 내부의
ROW_COUNT() 가 affected_row 또는 matched_row 로 인식될 수 있음
Default 는
Use Affected Rows=False
matched_row
해당경우에는 UPDATE 후 ROW_COUNT 체크시 주의해야함.
Use Affected Rows=True
affected_row
ROW_COUNT() 유의사항 (Workbench Connection vs MySQL Connector .NET)