Questions tagged «parameter»

2
如何创建Unicode参数和变量名
所有这些工作: CREATE DATABASE [¯\_(ツ)_/¯]; GO USE [¯\_(ツ)_/¯]; GO CREATE SCHEMA [¯\_(ツ)_/¯]; GO CREATE TABLE [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯] NVARCHAR(20)); GO CREATE UNIQUE CLUSTERED INDEX [¯\_(ツ)_/¯] ON [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]); GO INSERT INTO [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]) VALUES (N'[¯\_(ツ)_/¯]'); GO CREATE VIEW [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]; GO CREATE PROC [¯\_(ツ)_/¯].[sp_¯\_(ツ)_/¯] @Shrug NVARCHAR(20) AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] …


2
为什么TVP必须是READONLY,为什么其他类型的参数不能是READONLY
根据此博客,如果函数或存储过程的OUTPUT参数不是参数,则它们本质上是按值传递的;如果它们是参数,则本质上应视为传递引用的更安全的版本OUTPUT。 最初,我认为强制声明TVP的目的READONLY是向开发人员明确表示不能将TVP用作OUTPUT参数,但由于我们无法将非TVP声明为,因此还必须继续进行下去READONLY。例如,以下失败: create procedure [dbo].[test] @a int readonly as select @a 消息346,级别15,状态1,过程测试 参数“ @a”不是表值参数,因此不能声明为READONLY。 由于统计数据未存储在TVP上,因此阻止DML操作的原理是什么? 是否与OUTPUT出于某些原因不希望TVP成为参数有关?

1
使用USING子句命名函数参数和JOIN结果之间的冲突
鉴于当前Postgres 9.4中的设置(来自此相关问题): CREATE TABLE foo (ts, foo) AS VALUES (1, 'A') -- int, text , (7, 'B'); CREATE TABLE bar (ts, bar) AS VALUES (3, 'C') , (5, 'D') , (9, 'E'); 上一个问题还有一个SQL Fiddle。 我写了SELECT一个FULL JOIN以实现所引用问题的目的。简化: SELECT ts, f.foo, b.bar FROM foo f FULL JOIN bar b USING (ts); 根据规范,解决列的正确方法ts是不使用表限定。任一的输入值(f.ts或b.ts)可以是NULL。该USING子句会产生一些奇怪的情况:引入输入中实际上不存在的“输入”列。到目前为止,一切都很优雅。 …

1
是什么允许SQL Server用对象名称交换传递给系统过程的字符串
是什么导致将对象名称传递给系统存储过程合法sp_helptext呢? 什么机制将对象名称转换为字符串? 例如 -- works sp_helptext myproc sp_helptext [myproc] sp_helptext [dbo.myproc] -- and behaves the same as a string sp_helptext 'myproc' sp_helptext 'dbo.myproc' -- does not work sp_helptext dbo.myproc -- Msg 102, Level 15, State 1, Line 1 incorrect syntax near '.' -- an additional case that does not work. …

1
PLS-00306错误:如何找到错误的参数?
PLS-00306:“字符串”调用中参数的数量或类型错误 原因:当命名的子程序调用不能与该子程序名称的任何声明匹配时,会发生此错误。子程序名称可能拼写错误,参数可能具有错误的数据类型,声明可能有误,或者声明可能不正确地放置在块结构中。例如,如果使用错误的名称或错误的数据类型参数调用内置平方根函数SQRT,则会发生此错误。 操作:检查子程序名称的拼写和声明。还要确认其调用正确,其参数具有正确的数据类型,并且,如果不是内置函数,则将其声明正确放置在块结构中。 如何快速确定错误的论点? 我有一个带有数十个参数的存储过程。有没有一种简便的方法来检查所用过程与已定义过程之间的差异?我不想逐行检查。

1
查询性能不佳
我们有一个很大的过程(10,000行以上),通常需要0.5-6.0秒才能运行,具体取决于要处理的数据量。在过去一个月左右的时间里,在我们使用FULLSCAN更新统计信息后,开始花费了30秒钟以上。当速度变慢时,sp_recompile会“修复”该问题,直到夜间统计作业再次运行。 通过比较慢速执行计划和快速执行计划,我将其范围缩小到了特定的表/索引。当它运行缓慢时,它估计将从特定索引返回大约300行,而当它运行速度较快时,它估计将有1行。当它运行缓慢时,在对索引执行查找后将使用表后台处理程序;而当它运行速度较快时,它将不执行表后台处理程序。 使用DBSS SHOW_STATISTICS,我在excel中绘制了索引直方图。我通常希望该图更像是“起伏的丘陵”,但相反,它看起来像一座山,最高点比该图上的其他大多数值高2x-3x。 如果我在没有FULLSCAN的情况下更新统计信息,它看起来会更正常。如果我再次使用FULLSCAN运行它,则看起来就像我上面描述的那样。 这感觉像一个参数嗅探问题,并且特别与上面的(看似)怪异的索引分布有关。 proc接受表值参数,表值参数上是否可以进行参数嗅探? 编辑:proc还需要12个其他参数,其中一些是可选的,其中两个是开始日期和结束日期。 直方图是奇数,还是我吠错了树? 我当然很愿意尝试调整查询和/或尝试调整索引。如果那是很好的解决方案,那时候我的问题更多是关于偏斜的直方图。 我应该提到这是PK IDENTITY聚集索引。我们有两个互相通信的系统,一个是旧系统,一个是新的本地系统。两个系统都存储相似的数据。为了使它们保持同步,即使将数据添加到旧系统中(完成RESEED处理),也可以在将新事物添加到旧系统中后在新系统中的此表上增加PK。因此,此列中的编号可能存在​​一些差距。记录很少删除(如果有的话)。 任何想法将不胜感激。我非常高兴收集/包含更多信息。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.