3

나는 두 가지 유형의 몇 가지 계산 - 열이 :계산 된 열 : SQL 또는 로컬로 Entity Framework에서?

    현재 테이블 (예 : 가격 * 세금) 다른 columnes에 기반
  1. 계산 된 열 (예 : 가격 * fn_GetTax (ORDERID))에 열을 기반으로
  2. 계산 된 열

CLR에서 클라이언트의 경우에만이 열을 사용하고 서버에서 계산 및 전송 성능을 절약하는 것이 더 낫다고합니까? 위에 나열된 유형 (및 다른 유형)이 다른가요?

답변

4

계산 된 열을 SQL 테이블의 일부로 만들려고합니다. 그렇게하기 위해 필요한 노력이 터무니없는 경우가 아닙니다.

계산식이나 조회 또는 그 라인을 따르는 항목이 있으면 SQL 테이블에 직접 입력하십시오. 이 방법은 T-SQL 또는 SQL Server 데이터베이스에 액세스하는 다른 도구를 사용하여 테이블을 쿼리해야하는 경우에도 사용할 수 있습니다 (특히 PERSISTED로 설정할 수있는 경우) .

더 많은 정교한 요구 사항이있는 경우 광범위한 문자열, 수학 또는 날짜 조작 등이 필요한 경우 이러한 계산을 .NET 언어로 바꾸는 것이 좋습니다. SQL Server에 CLR 어셈블리로 저장하고 (다른 팀이나 프로젝트에서 재사용 할 가능성이있는 경우) SQL Server에서 열을 직접 수행하거나, 가능성이 있다면 EF 모델에 넣을 수 있습니다 그 계산 된 열에 관심이있는 유일한 사람.

귀하의 질문에 약간의 빛을 비추는 희망!

+0

잘 설명 된 답변에 감사드립니다. – Shimmy

+0

이 경우 SET QUOTED_IDENTIFIER ON에주의하십시오. 계산 된 열을 사용하고 해당 값을 ON으로 설정하지 않으면 응용 프로그램이 예외를 throw 할 수 있습니다. 트리거에서 동일한 논리를 구현하여 동일한 이름의 열을 업데이트하여 일부 모발을 절약 할 수 있습니다. – sm14