그래서 열에는이 문자열의 길이를 미리 알 수없는 몇 가지 텍스트가 있습니다. 현실적으로 95 %의 시간은 아마도 100-500 자 사이이지만 10000 자 정도되는 한 사례가있을 수 있습니다. 나는이 문자열의 크기를 제어 할 수 없으며 결코 사용자를 수행하지 않는다. varchar (max) 외에도 다른 전략을 사용하면 유용할까요? 또한 varchar (max)의 몇 가지 단점은 무엇입니까?Sql Server에 지정되지 않은 길이의 문자열을 저장하는 전략은 무엇입니까?
답변
sqlserver 2005의 Varchar (최대)는 내가 사용하는 것입니다.
SqlServer는 "text"또는 큰 varchar를 지정했지만 최대가 아닌 큰 문자열 필드를 처리하므로 비트의 일부는 레코드에 저장하고 나머지는 외부에 저장합니다.
내 지식으로는 varchar (max)를 사용하면 전체 내용을 레코드 밖으로 저장하므로 작은 텍스트 입력보다 효율적이지 않습니다. 그러나 "텍스트"필드보다 더 효율적입니다. 부분에서 인라인을 사용하고 나머지는 포인터에서 가져옴으로써 정보를 두 번 볼 필요가 없기 때문입니다.
nvarchar (max)가 확실히 최선의 방법입니다. 행 당 실제 데이터 유형의 최대 값이 아니라 행당 실제로 저장하는 데이터에 필요한 공간 만 할당한다는 것을 알고 계실 것입니다.
지속적으로 행을 업데이트하고 8000 바이트 미만에서 8000 바이트 미만으로 자주 전환하는 경우에만 볼 수 있습니다.이 경우 SQL은 저장소를 LOB로 변경하고 해당 위치에 대한 포인터를 저장합니다. 데이터는 8000 바이트를 넘을 때마다 이 경우에는 앞뒤로 변경하면 비용이 많이 들지만,이 경우에는 볼 수있는 다른 옵션이 없습니다. 그래서 논점 거리에요.
의 메타 데이터입니다.이 열은 결코 업데이트되지 않을 것이라고 언급하는 것을 잊어 버렸습니다. – jdelator
하나의 멋지고 효과적인 접근 방법은 테이블에 두 개의 열 (대부분 대다수의 경우를 감당할 수있을만큼 큰 varchar)과 커다란 문제를 저장하는 CLOB/TEXT 유형 중 하나입니다. 삽입/업데이트 할 때 문자열의 크기를 가져 와서 해당 열에 저장할 수 있습니다.
큰 가치가있을 때 깨지 않고 대다수의 경우 varchar의 성능을 제공합니다.
- 1. SQL Server에 기본값이 지정되지 않은 열에 대한 기본값을 생성하는 스크립트
- 2. SQL Server에 대한 읽기 및 쓰기 성능을 달성하기위한 전략은 무엇입니까?
- 3. gsub! 지정되지 않은 문자열을 수정하는 중
- 4. 문자열을 저장하는 SQL
- 5. SQL Server에 많은 문자열 메시지를 저장하는 가장 효율적인 방법은 무엇입니까?
- 6. C# : 임의의 개체를 SQL Server에 저장하는 방법은 무엇입니까?
- 7. SQL Server에 암호 저장
- 8. .net의 SQL Server에 float []를 저장하는 방법은 무엇입니까?
- 9. SQL Server에 대규모 데이터 집합을 저장하는 가장 좋은 방법은 무엇입니까?
- 10. SQL Server에 주석을 저장하는 데 가장 적합한 데이터 형식은 무엇입니까?
- 11. XML 데이터를 SQL Server에 저장하는 가장 좋은 방법은 무엇입니까?
- 12. 임시 숫자/상수를 저장하는 전략은 무엇입니까?
- 13. 지정되지 않은 값의 예외입니까?
- 14. 파스칼에서 타입이 지정되지 않은 포인터
- 15. SQL Server에 sqlpsx가 포함되어 있지 않은 이유는 무엇입니까?
- 16. 내 xdebug가 스타일이 지정되지 않은 이유는 무엇입니까?
- 17. SQL Server에 이전 날짜를 저장하는 가장 좋은 방법
- 18. 참조가 제대로 지정되지 않은 생성자?
- 19. 지정되지 않은 유형의 일반 반환
- 20. OleDbException (0x80004005) : 지정되지 않은 오류?
- 21. drupal보기에서 순서가 지정되지 않은 목록
- 22. 일련 번호가 지정되지 않은 작업
- 23. ReportLab의 번호가 지정되지 않은 페이지
- 24. Mathematica는 유형이 지정되지 않은 언어입니까?
- 25. SQL Server에 MD5 해시 저장
- 26. gettext를 사용하여 정의되지 않은 길이의 목록을 처리하는 방법은 무엇입니까?
- 27. SQL Server에 오디오를 저장 하시겠습니까?
- 28. 임시 테이블은 SQL Server에 저장됩니다.
- 29. 업로드 파일을 SQL Server에 저장하는 것이 더 좋습니까?
- 30. SQL 서버에 AD 옥텟 문자열을 저장하는 방법은 무엇입니까?
내가 잘못되었을 수도 있지만 8000 바이트 이상이되면 암시 적으로 데이터를 LOB로 변환 한 다음 실제 데이터 인라인 및 데이터에 대한 포인터를 저장하는 경우에만 행 외부에 저장한다는 인상하에있었습니다. outside – JustinD