最近有张表经常会出现查询问题,高手请帮忙看一下!tmpDBCCinputbuffer

benlee 2011-12-26 09:16:14
表结构很简单
CREATE TABLE [dbo].[表_数据_最后定位](
[标识] [uniqueidentifier] NOT NULL,
[设备标识] [uniqueidentifier] NULL,
[时间] [datetime] NULL,
[经度] [decimal](18, 9) NULL,
[经度半球] [char](1) COLLATE Chinese_PRC_CI_AS NULL,
[纬度] [decimal](18, 9) NULL,
[纬度半球] [char](1) COLLATE Chinese_PRC_CI_AS NULL,
[高度] [decimal](18, 9) NULL,
[航速] [int] NULL,
[航向] [int] NULL,
[里程] [decimal](18, 3) NULL,
[加速度X] [decimal](18, 3) NULL,
[加速度Y] [decimal](18, 3) NULL,
[加速度Z] [decimal](18, 3) NULL,
[最后报警时间] [datetime] NULL,
[最后报警内容] [nvarchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[最后报警类型] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[最后报警标识] [uniqueidentifier] NULL,
[状态] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[备注] [ntext] COLLATE Chinese_PRC_CI_AS NULL,
[备0] [ntext] COLLATE Chinese_PRC_CI_AS NULL,
[备1] [int] NULL,
[备2] [int] NULL,
[备3] [int] NULL,
[备4] [decimal](18, 9) NULL,
[备5] [decimal](18, 9) NULL,
[备6] [decimal](18, 9) NULL,
[备7] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[备8] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[备9] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[备10] [int] NULL,
[备11] [int] NULL,
[备12] [int] NULL,
[备13] [int] NULL,
[备14] [int] NULL,
[备15] [int] NULL,
[备16] [int] NULL,
[备17] [int] NULL,
[备18] [int] NULL,
[备19] [int] NULL,
[备20] [int] NULL,
[备21] [int] NULL,
[备22] [int] NULL,
[备23] [int] NULL,
[备24] [int] NULL,
[备25] [int] NULL,
[备26] [int] NULL,
[备27] [int] NULL,
[备28] [int] NULL,
[备29] [int] NULL,
CONSTRAINT [PK_表_数据_最后定位] PRIMARY KEY NONCLUSTERED
(
[标识] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

表中数据不多,2000多条,平时查询只要1秒都不到就出来了
查询Select * From 表_数据_最后定位 Where 时间 >'........' And 其它条件

但有时会卡住半天不出来,后来经过多次测试,发现只要去掉Where中的时间,保留其它条件都会很快出来。或是直接
Select * From 表_数据_最后定位,也能很快出来,只有加上时间就会卡住。

你不管他,过1,2个小时,又好了。一直以为是有什么计划任何或是SQL在执行其它什么,所以把其它线程什么用SQL关了,还是这样。

最近发现,每次出现这样的情况时,活动进程中,总会有一个系统进程在执行以下的SQL。是自动执行,点中止也中止不了。

create table #tmpDBCCinputbuffer ([Event Type] nvarchar(512), [Parameters] int, [Event Info] nvarchar(512))
insert into #tmpDBCCinputbuffer exec ('DBCC INPUTBUFFER(51)')
select [Event Info] from #tmpDBCCinputbuffer

想请教一下,这是什么意思,是不是这个执行导致我查询卡住的,如果是的话,怎么解决。谢谢。
...全文
225 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
benlee 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sql77 的回复:]
create table #tmpDBCCinputbuffer ([Event Type] nvarchar(512), [Parameters] int, [Event Info] nvarchar(512))
insert into #tmpDBCCinputbuffer exec ('DBCC INPUTBUFFER(51)')
select [Event Info] from……
[/Quote]

应该没有更新操作了,我把程序都停了,如果没停的话,是会有很频繁的更新操作的。

另外请教一下,如果在一个高速插入的表中,每秒可能达到200-300次插入操作时,自增编号如果才能在插入时得到一个快速可靠的返回呢。
benlee 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fredrickhu 的回复:]
create table #tmpDBCCinputbuffer ([Event Type] nvarchar(512), [Parameters] int, [Event Info] nvarchar(512))
insert into #tmpDBCCinputbuffer exec ('DBCC INPUTBUFFER(51)')
select [Event Info] from……
[/Quote]

用过,在卡死时,用事件探测器是看不到什么操作语句,大多是SQL系统级的(没太注意是什么语句)。

另外请教一下,如果在一个高速插入的表中,每秒可能达到200-300次插入操作时,自增编号如果才能在插入时得到一个快速可靠的返回呢。
benlee 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qianjin036a 的回复:]
在卡住的时候,执行 select 时间 from 表,或者 select 时间 from 表 where 时间 between 时间分段,看在哪一段时间上会卡住.
[/Quote]

正常运行的语句中是有个时间>'....'(。。。表示一个时间)的,不过也没试过单独select 时间 from 表,下次我试一下,谢谢。

另外请教一下,如果在一个高速插入的表中,每秒可能达到200-300次插入操作时,自增编号如果才能在插入时得到一个快速可靠的返回呢。
快溜 2011-12-26
  • 打赏
  • 举报
回复
DBCC INPUTBUFFER(51)你看
--小F-- 2011-12-26
  • 打赏
  • 举报
回复
create table #tmpDBCCinputbuffer ([Event Type] nvarchar(512), [Parameters] int, [Event Info] nvarchar(512))
insert into #tmpDBCCinputbuffer exec ('DBCC INPUTBUFFER(51)')
select [Event Info] from #tmpDBCCinputbuffer


这个只是一个临时表 与你的查询无关啊


你可以用SQL PROFILER跟踪下。
-晴天 2011-12-26
  • 打赏
  • 举报
回复
在卡住的时候,执行 select 时间 from 表,或者 select 时间 from 表 where 时间 between 时间分段,看在哪一段时间上会卡住.
SQL77 2011-12-26
  • 打赏
  • 举报
回复

create table #tmpDBCCinputbuffer ([Event Type] nvarchar(512), [Parameters] int, [Event Info] nvarchar(512))
insert into #tmpDBCCinputbuffer exec ('DBCC INPUTBUFFER(51)')
select [Event Info] from #tmpDBCCinputbuffer


这个是用来查看操作信息的,

这个不影响你查询啊,

是否还有其他操作有更新这个表,你加时间范围,假如有更新这个范围内的,你要查询可能就要等了

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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