У меня есть TSQL-код, который опирается на хранимую процедуру для выбора строки.Удар производительности с множеством результатов Набор из одной строки
Когда я реализует более сложный TSQL скрипт, который будет выбирать много строк на основе состояния, вместо того, чтобы один результирующий набор х строк я заканчивающихся с х результирующих наборов, содержащих одну строку.
Мой первый вопрос: есть ли беспокойство или выступления близки к тому, что я получил бы с одним набором результатов x строк?
Второй вопрос: кто-нибудь думает, что временная таблица, в которой моя хранимая процедура вставляет результат (вместо выбора), должна быть быстрее?
Редактировать: В основном эта хранимая процедура выбирает все элементы данного иерархического объекта.
ALTER PROCEDURE [dbo].[MtdMdl_HierarchicalObject_Collection_Items]
@relatedid int
AS
BEGIN
SET NOCOUNT ON
declare @curkeyid int
declare cur CURSOR static read_only LOCAL
for select distinct [Id] from MtdMdl_Item where [Owner] = @relatedid
open cur
fetch next
from cur into @curkeyid
while @@FETCH_STATUS = 0
BEGIN
-- select the item row from its ID
exec MtdMdl_Item_ItemBase_Read @keyid = @curkeyid
fetch next
from cur into @curkeyid
END
close cur
deallocate cur
END
ALTER PROCEDURE [dbo].[MtdMdl_Item_ItemBase_Read]
@keyid int
AS
BEGIN
SET NOCOUNT ON
SELECT TOP(1) [Id], [TimeStamp], [Name], [Owner], [Value]
FROM [MtdMdl_Item]
WHERE ([Id][email protected])
ORDER BY TimeStamp Desc
END
Можете ли вы показать запросы у вас есть вопросы? –