SQL语句?

coco818 2010-04-01 02:19:42


create table order1 (时间 varchar(30) primary key not NULL ,阻值 numeric(5,3) , 功率 numeric(5,3))
INSERT INTO order1(时间,阻值,功率 )VALUES (convert(varchar,getdate(),21),123,333)


本人想在该表的时间字段上加一个聚集索引,以年月日小时为单位,怎么写?
...全文
109 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
sql_sf 2010-04-01
  • 打赏
  • 举报
回复
加不加索引
与是否能使用索引也不是一定的,
要看优化器来决定
如果在扫描表或者检索表的绝大多数数据时候
一般不走索引
对插入的效率的影响要看插入的数据是否会引起数据的移动等
coco818 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sql_sf 的回复:]
引用 15 楼 coco818 的回复:
引用 14 楼 sql_sf 的回复:
引用 13 楼 coco818 的回复:
时间字段格式是:xxxx年xx月xx日 xx:xx:xx.xxx
带毫秒的
本人想在该表的时间字段上加一个聚集索引,以年月日小时为单位,怎么写?

如果你时间 不需要后面的分秒 插入的时候convert(varchar(13),getdate(),21)截取13……
[/Quote]
难道不加索引。。经常有些查询要求,计算一年或者两年的某个值的平均值。或者某个时间段的某个值的平均值

这个插入对效率的影响 多大呢??
sql_sf 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 coco818 的回复:]
引用 14 楼 sql_sf 的回复:
引用 13 楼 coco818 的回复:
时间字段格式是:xxxx年xx月xx日 xx:xx:xx.xxx
带毫秒的
本人想在该表的时间字段上加一个聚集索引,以年月日小时为单位,怎么写?

如果你时间 不需要后面的分秒 插入的时候convert(varchar(13),getdate(),21)截取13位
如果要分秒的话
只能通过个计算列来实……
[/Quote]
加一个聚集索引,以年月日小时为单位 没有这样说法
本人加入索引只是为了优化查询时间。与插入数据没有什么直接的关系吧??
索引通常情况下可以在一定程度上提高查询效率
但是影响插入效率
coco818 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sql_sf 的回复:]
引用 13 楼 coco818 的回复:
时间字段格式是:xxxx年xx月xx日 xx:xx:xx.xxx
带毫秒的
本人想在该表的时间字段上加一个聚集索引,以年月日小时为单位,怎么写?

如果你时间 不需要后面的分秒 插入的时候convert(varchar(13),getdate(),21)截取13位
如果要分秒的话
只能通过个计算列来实现
[/Quote]

难道我对索引理解有错误!!
由于每秒的数据量极大,本人在插入数据时时间是需要毫秒的。
本人加入索引只是为了优化查询时间。与插入数据没有什么直接的关系吧??
sql_sf 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 coco818 的回复:]
时间字段格式是:xxxx年xx月xx日 xx:xx:xx.xxx
带毫秒的
本人想在该表的时间字段上加一个聚集索引,以年月日小时为单位,怎么写?
[/Quote]
如果你时间 不需要后面的分秒 插入的时候convert(varchar(13),getdate(),21)截取13位
如果要分秒的话
只能通过个计算列来实现
coco818 2010-04-01
  • 打赏
  • 举报
回复

时间字段格式是:xxxx年xx月xx日 xx:xx:xx.xxx
带毫秒的
本人想在该表的时间字段上加一个聚集索引,以年月日小时为单位,怎么写?
永生天地 2010-04-01
  • 打赏
  • 举报
回复
INSERT INTO order1(时间,阻值,功率 )
VALUES (convert(varchar,getdate(),21),
123,333) --这两个数太大了
sql_sf 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fredrickhu 的回复:]
如果是修改的话
alter table order1 add index on order1(时间)
[/Quote]
这样也行?
1语法错误
2也是非聚集了
sql_sf 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 coco818 的回复:]
引用 2 楼 fredrickhu 的回复:
加了索引用处也不大 貌似你用了函数

不是很明白??
[/Quote]
忽悠你的
那插入时候用的函数没有关系
--小F-- 2010-04-01
  • 打赏
  • 举报
回复
如果是修改的话
alter table order1 add index on order1(时间)
htl258_Tony 2010-04-01
  • 打赏
  • 举报
回复
在创建主键的时候,默认就是聚集索引.
coco818 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fredrickhu 的回复:]
加了索引用处也不大 貌似你用了函数
[/Quote]
不是很明白??
sql_sf 2010-04-01
  • 打赏
  • 举报
回复
都已经主键了
会加的
chuifengde 2010-04-01
  • 打赏
  • 举报
回复
create clustered index idx_text on order1(时间)
bancxc 2010-04-01
  • 打赏
  • 举报
回复
create index
永生天地 2010-04-01
  • 打赏
  • 举报
回复
create   table   order1 (
时间 varchar(30) not NULL ,
阻值 numeric(5,3) ,
功率 numeric(5,3),
PRIMARY KEY CLUSTERED
(
[时间]
) ON [PRIMARY] )
--小F-- 2010-04-01
  • 打赏
  • 举报
回复
加了索引用处也不大 貌似你用了函数
htl258_Tony 2010-04-01
  • 打赏
  • 举报
回复
create   table   order1 (时间 varchar(30) primary key clustered not NULL  ,阻值  numeric(5,3) , 功率 numeric(5,3))

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧