相关疑难解决方法(0)

sql server无效的对象名称 - 但表列在SSMS表列表中

我正在尝试Stored Procedure为新创建的数据库创建一个.然而,SSMSintellisense不能识别已创建的表的一半以上.

例如,虽然在表格左下方列中我有一个表格dbo.Room,当我dbo.在新查询窗口中键入" "时,该表未列出,实际上只列出了37个表中的17个.

我可以看到intellisense列出的表与没有表的表之间没有区别.如果我手动输入dbo.Room,则会加下划线,错误为

无效的对象名称'dbo.Room'..

我在设置表时错过了什么吗?

更新:我已经尝试刷新表列表(几次)

sql-server ssms

315
推荐指数
9
解决办法
41万
查看次数

如何让SQL Server知道不在查询中使用Cache?

只是一个普遍的问题:

是否有一个查询/命令我可以传递给SQL Server在执行特殊查询时不使用缓存?

我正在寻找一个我可以设置的查询/命令,而不是配置设置.有没有必要这样做?

t-sql sql-server

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

为什么我会打扰使用全文搜索?

我是全文搜索的新手,我使用了以下查询

Select * From Students Where FullName LIKE '%abc%'
Run Code Online (Sandbox Code Playgroud)

学生表包含所有随机的百万条记录,看起来像这样'QZAQHIEK VABCNLRM KFFZJYUU'

仅耗时2秒就产生了1100行. 如果在两秒内搜索到百万条记录,为什么我会打扰使用全文搜索?!! Like谓词是否也使用了全文索引?

sql sql-server full-text-search

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

有没有办法防止SQL缓存的重复调用和更快?

我需要在1-2秒内运行几个查询.我一直在努力优化它们,但是第一次调用它们需要大约20秒,在所有后续调用中大约需要1秒.这使我无法判断我所做的任何更改是否会加快查询速度,因为它总是在〜1秒后运行.我对SQL并不十分熟悉,但从我能够学到的东西来看,似乎有些东西就是缓存.我正在试图弄清楚如何防止这种情况,但似乎没有任何效果.从我在Google上发现的,人们一直在暗示

DBCC FREEPROCCACHE
Run Code Online (Sandbox Code Playgroud)

要么

OPTION(recompile)
Run Code Online (Sandbox Code Playgroud)

这些似乎都不起作用.当第一次使用~20时,每个查询仍在~1秒内运行.我只想确保我所做的更改正在带来改进,而不是改进来自缓存.还有其他一些技巧吗?

sql sql-server

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

如何在 SQL Server 中查找当前长时间运行的查询以及如何立即终止它们?

有时我的应用程序运行缓慢。主要问题是一些昂贵的报告正在运行。我怎样才能找到这些报告以及如何立即杀死这些报告?

sql-server

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

在多个SQL查询中测试性能

我正在努力提高SQL-Server-2008上一些SQL查询的效率.有不同的方法来执行每个查询,我想找到最快的.

但是,我遇到的问题是我无法确定哪个实际上执行得更快.理想情况下,我可以一个接一个地运行每个查询,看看哪个运行最快.理想的情况下...

问题是,SQL对我来说太聪明了.在构造这些查询时,我多次运行它们.当我这样做时,查询的效率会自行提高.我想成像是因为SQL所做的一些幕后工作.这是什么?我怎么能避免呢?

例如,我运行一次查询,需要30秒.我再次运行它需要10秒.运行查询的次数越多,运行速度就越快.

那么..有没有"清除缓存"的方法或SQL中的等价物?我想准确地指出哪个查询实际上运行得更快.或者,什么是我想要的测试类型的最佳方法?

有关此主题的任何信息都将被接受为有效输入.

sql t-sql performance sql-server-2008

4
推荐指数
1
解决办法
1510
查看次数

为什么/如何使用SQL查询更快?

我在一个表中运行了大约1,300,000条记录的查询.它需要满足某些WHERE条件的某些记录并将它们插入另一个表中.它首先完全清除目标表.

每次执行时,完成查询所需的时间会大大改善:

1st: 5 minutes, 3 seconds
2nd: 2 minutes, 43 seconds
3rd: 12 seconds
4th: 3 seconds
Run Code Online (Sandbox Code Playgroud)

除了点击Execute之外我什么也没做.我的查询看起来像这样(有些缩写用于长度目的):

DELETE FROM dbo.ConsolidatedLogs --clear target table

DECLARE @ClientID int

DECLARE c CURSOR FOR SELECT ClientID FROM dbo.Clients
OPEN c

FETCH NEXT FROM c INTO @ClientID --foreach LogID
WHILE @@FETCH_STATUS = 0
BEGIN

   INSERT INTO dbo.ConsolidatedLogs
        (col1, col2)
        SELECT col1, col2
        FROM dbo.CompleteLogsRaw
        WHERE col3 = true AND
              ClientID = @ClientID

   FETCH NEXT FROM c INTO @ClientID

END
CLOSE c
DEALLOCATE c …
Run Code Online (Sandbox Code Playgroud)

sql sql-server query-optimization

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