相关疑难解决方法(0)

总是使用nvarchar(MAX)有什么缺点吗?

在SQL Server 2005中,使所有字符字段nvarchar(MAX)而不是明确指定长度是否有任何缺点,例如nvarchar(255)?(除了显而易见的一个,你无法限制数据库级别的字段长度)

sql sql-server sql-server-2005

329
推荐指数
8
解决办法
13万
查看次数

在大型表上增加VARCHAR列的大小时会出现问题吗?

我正在使用SQL Server 2008,我需要在一个大约500k行的表上创建一个更大的VARCHAR字段,从(200到1200).我需要知道的是,如果有任何问题我没有考虑过.

我将使用此TSQL语句:

ALTER TABLE MyTable
ALTER COLUMN [MyColumn] VARCHAR(1200)
Run Code Online (Sandbox Code Playgroud)

我已经在数据的副本上试过了,这个陈述没有我能看到的不良影响.

这样做有什么可能的问题我可能没有考虑过吗?

顺便说一下,该列未编入索引.

sql-server varchar sql-server-2008 alter-column

84
推荐指数
2
解决办法
11万
查看次数

varchar(max)无处不在?

使所有Sql Server 2008字符串列varchar(max)有问题吗?我允许的字符串大小由应用程序管理.数据库应该坚持我给它的东西.通过在Sql Server 2008中将所有字符串列声明为varchar(max)类型,无论实际进入它们的数据大小如何,我都会受到性能影响吗?

varchar sql-server-2008

80
推荐指数
5
解决办法
4万
查看次数

为什么不使用varchar(max)?

在数据库设计方面,我有点老了,所以我完全在列中使用正确的数据大小.但是,在为朋友查看数据库时,我注意到他使用varchar(max)了很多.现在,我的想法是把它扔回给他并告诉他改变它.但后来我想到了它并且没有提出他不使用它的充分理由(如果你想知道的话,他会使用案例类型工具来生成数据库).

我一直在研究使用的主题,varchar(max)我不能真正想出他不使用它的任何理由.

他没有将列用于索引,位于数据库上的应用程序对输入有限制,因此它不允许在字段中使用大量条目.

任何帮助将不胜感激,以帮助我让他看到光:).

sql t-sql sql-server-2008 varcharmax

72
推荐指数
2
解决办法
5万
查看次数

sql server中varchar(500)与varchar(max)之间的区别

我想知道在性能,内存和其他任何需要考虑的因素方面使用varchar(500)和varchar(max)时的优缺点是什么?

  • 两者都会使用相同数量的存储空间吗?

在sql server 2000/2005/2008的情况下答案是否有所不同?

sql sql-server

22
推荐指数
1
解决办法
2万
查看次数

nvarchar(50)与nvarchar(max)的含义

如果下面两个表的唯一区别是nvarchar(50),nvarchar(max)并且每个字段中的字符串的范围是1到50个字符,那么下面两个表之间的一般存储和性能差异是什么?这是在SQL Server 2005中.

表格1

firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)
Run Code Online (Sandbox Code Playgroud)

表2

firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)
Run Code Online (Sandbox Code Playgroud)

sql database sql-server sql-server-2005

19
推荐指数
2
解决办法
2万
查看次数

varchar(5)和varchar(5000)之间的区别?

可能重复:
varchar(500)优于varchar(8000)有什么优势?

在SQL Server中,我们可以指定字段类型varchar(n):

存储大小是输入数据的实际长度(以字节为单位),而不是n个字节.

通常在规划数据库结构时,我会尝试想象存储在这些varchar字段中的字符串的最大可能长度,然后设置该想象的大小+ varchar字段的一些备份.有时可能会发生最初提供的空间不足以进行现场,然后我需要增加长度.

但实际上,是否值得将该varchar领域限制在一定的价值范围内,而不仅仅是设置类似的东西varchar(5000),甚至varchar(max)是100%适合这种情况的东西?当我限制该n长度时,SQL Server或索引组织中的页面组织是否有任何优势?

更新

这就是我的意思(优势):https://stackoverflow.com/a/5353196/355264

是的,查询优化器可以猜测页面中有多少行,如果你有很多大于必要的varchar字段,SQL Server可以在内部猜测错误的行数.

以上是真的吗?还有其他优点吗?

sql-server

16
推荐指数
2
解决办法
3万
查看次数

varchar值如何存储在SQL Server数据库中?

我的同事程序员对他的团队领导有一个奇怪的要求; 他坚持要创建varchar长度为16*2 n的列.

这种限制有什么意义?

我可以假设短字符串(例如少于128个字符)直接存储在表的记录中,从这个角度来看限制将有助于对齐记录中的字段,较大的字符串存储在数据库"堆"中并且只有对该字符串的引用保存在表记录中.

是这样吗?

这个要求是否有合理的背景?

顺便说一句,DBMS是SQL Server 2008.

database sql-server database-design sql-server-2008 sqldatatypes

15
推荐指数
2
解决办法
2万
查看次数

varchar列的大小

在sql server中,如果我将varchar列定义为长度为32或128,它会有所不同吗?

sql-server optimization varchar

10
推荐指数
2
解决办法
2万
查看次数

在查询中使用时,VARCHAR列的大小是否重要

可能重复:
varchar(500)优于varchar(8000)有什么优势?

我知道VARCHAR(200)包含10个字符的列占用的空间与VARCHAR(20)包含相同数据的列相同.

我想知道更改VARCHAR(200)特定表的十几列VARCHAR(20)是否会使查询运行得更快,尤其是在以下情况下:

  • 这些列永远不会包含超过20个字符
  • 这些列通常用于ORDER BY子句中
  • 这些列通常用于WHERE子句中
    • 其中一些列已编制索引,以便可以在WHERE子句中使用它们

PS:我正在使用SQL Server 2000,但很快就会升级到更高版本的SQL.

sql sql-server performance sql-server-2000 query-optimization

6
推荐指数
1
解决办法
5005
查看次数