我正在使用JMETER
对SQL DB
进行负载测试,我尝试(在单个JDBC Sampler中):
IF NOT OBJECT_ID('tempdb.dbo.#tmp') IS NULL
BEGIN DROP TABLE #tmp END
CREATE TABLE #tmp ( entity numeric(4, 0) NOT NULL, entityCode numeric(18, 0) NOT NULL, entityTraceabilityDeclared numeric(18, 0) NOT NULL )
CREATE NONCLUSTERED INDEX IX_#tmp_entityCode_entity ON #tmp ( entityCode, entity )
{CALL entityTraceability_UpdatePieceLastMovement }
但我得到一个错误说"无效的对象名称#tmp"
如果我这样做
SELECT * FROM #tmp
而不是调用sp它起作用。
感谢。
答案 0 :(得分:0)
您正在使用前面的#创建临时表。这意味着它只能在它创建的确切会话中可用。在jmeter之外创建的任何会话都不会显示它,或者实际上jmeter中的任何会话都不是发布创建的会话(如果你正在创建多个线程)。
我注意到您在.dbo.
中使用tempdb.dbo.#tmp
,如果dbo
不是默认数据库,则可能会出现问题。可能想要使用tempdb..#tmp
,因为temps会去那里。
此外,您可以打印@@SPID
以确保您实际上在您认为自己的会话中做事。只是一个想法。