问题标签 [sql-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - SQL Server 视图的性能测试产生了令人惊讶的结果。为什么?
最近,我们对一些可能对性能产生负面影响的 SQL Server 视图进行了一些更改。我们决定对这些视图进行一些性能测试,看看我们是如何影响它们的。结果令人惊讶。
下图显示了我们运行的性能测试的结果。以下是图表所代表的内容:
- 蓝线是进行任何更改之前的视图。
- 红线显示更改后的视图。
- x 轴表示循环中的迭代。
- 每次迭代,都会插入一千条新记录(视图将返回)。
- 每次迭代,我们都会从我们正在测试的视图中进行几次选择,并对结果进行平均。
- y 轴表示视图返回结果所需的时间
- 经过性能测试的 select 语句有一个 where 子句,每次只返回 100 条记录。(在测试期间,每个名字上插入了 100 条记录)。
结果表明,我们确实确实受到了性能影响,但令我们感到困惑的是,一旦我们在数据库中达到大约 40,000 条记录,性能就会大幅提升。我们在几个不同的服务器上运行了这个测试,每次都得到类似的结果。
我想知道是否有人可以深入了解为什么会发生这种情况。当我们突破 40,000 个记录水平时,为什么我们会获得巨大的性能提升?有没有人见过这样的事情?我试图为此寻找某种原因,但空手而归。
我们尝试过调整视图、弄乱索引、重建和重组索引、分析执行计划以及其他各种事情,但到目前为止,我们还没有发现任何会导致这种情况的事情。
任何帮助或见解将不胜感激。谢谢。
sql-server - 我可以从视图中动态调用存储过程吗?
具体来说,我可以从视图中的当前数据库调用 proc 。我已经知道openrowset hack,所以这很有效,例如:
但我希望能够从当前数据库调用 proc,而无需像这样对名称进行硬编码:
不幸的是,这不起作用,因为 openrowset 需要文字字符串,而不是任何类型的变量。
不考虑安全性和性能方面的考虑,是否有解决方法?这将使遗留系统的维护更加容易忍受,因为此视图将调用的 proc 根据环境(开发、测试、产品)连接到不同的数据库。
sql-server - 在视图中使用 UNION select
我需要检查一个特定用户是否已经被引用到我们的一个事务表(我们大约有 10 个事务表)。我建议使用包含所有已引用用户的视图,然后开发团队可以通过该表进行选择,以找出他们正在寻找的数据是否存在,
所以这是我对视图的查询:
现在它有效,但我的问题是,这是个好主意吗?该要求要求我只提供一个脚本(或视图)而不是存储过程,我认为使用 SP 会更好,因为我可以为每个表执行一个快速的 IF EXIST() 语句并检查是否参数 user 存在于任何表中,但他们真的希望它只是一个他们可以检查的脚本(并且不使用变量)。
你们能不能给我一个更好的方法来满足这个要求,这对性能的影响会更小,因为这可能不是这个要求的优化解决方案。
TIA,隆美尔
sql - SQL View 和 WITH 子句的区别
这里的任何人都可以告诉我 VIEW 和 WITH 的区别,因为我搜索了很多地方,但我找不到任何关于它的信息。
我的想法是 VIEW 和 WITH 是相同的,除了 VIEWs 被保存为模式对象,但我可能是错的
sql-server - 未映射行的 SQL 视图
基本上我想弄清楚的是,说我有
表格1tbl1
ID | Name
和表2tbl2
ID | Name
然后我有一个映射表mt
ID | tbl1ID | tbl2ID
数据在这里并不重要,这些表格只是示例。
如何制作一个view
将抓取所有tbl1
未映射到的项目mt
。
顺便说一句,我正在使用 Microsoft SQL-server 2008。
mysql - Wordpress 用户和用户元 - 将一个表中的多行连接到另一个表中的一行
我想从 wp_users 和 wp_usermeta 表创建一个视图,以便我可以从外部应用程序查询视图中的行。基本身份验证详细信息存储在 wp_users 中(例如,用户名、密码、电子邮件、id),其他字段存储在 wp_usermeta 表中的键/值对中。
wp_users 表的结构如下:
wp_usermeta 表的结构如下:
我想以 MYSQL VIEW 的形式得到这样的数据:
我知道我至少需要在 wp_users 和 wp_usermeta 之间进行内部连接,但是我还需要在 wp_usermeta 中执行子查询以将这些行连接在一起。
我用于获取用户行的查询当然非常简单:
我将元数据作为一行获取的查询是:
那么如何将这两个查询连接在一起 - u1 的数据和 u1.id = m1.userid 所在的行?
sql - SQL Server在带有条件的VIEW中添加计算列
这是我的情况:
在我的表中有两个字段:
TaxId
value 没有存储在任何地方,但只有两个值(实际上是 3 个)。
现在我需要在我的视图中计算列来计算含税的新价格。
任何的想法?
我选择了类似的东西:
更新:
我已成功执行查询。
现在我只需要将 CalculatedPrice 设为十进制 (15,4)。我该如何设置?
sql - 视图中的 SQL Server SUM 函数
我有一个字段视图:
价格是计算值。
我想要的是totalPrice
在 select 语句中添加另一个计算列 ( ),它将具有相同 id 的记录的所有价格相加,给出结果(假设视图中有四行):
谢谢你。
sql - 如何在 SQL Server 中合并多行数据
这是我的情况:
TABLE PEOPLE(代码、姓名和其他与具有相同代码的记录相同的字段)
我想要的结果:
VIEW PEOPLE(代码、姓名和其他与具有相同代码的记录相同的字段)
有人可以帮我创建一个可以给我这个结果的视图吗?重点是合并具有相同“代码”的行并在“名称”列中合并名称。对于具有相同“代码”的行,所有其他字段都是 100% 相同的。
谢谢你。
haskell - Yesod/persistent 中的 SQL 视图
在http://www.yesodweb.com/book/persistent中没有提到 SQL 视图。
我(甚至在命令式语言中)一直非常喜欢不可变的数据库模式设计。即只有 INSERTs 和 SELECTs - 不使用 UPDATEs 和 DELETEs。
这具有保留所有历史记录的优点,但代价是使当前“状态”成为数据库中历史记录的相对昂贵的纯函数。
例如,没有'user'表,只有'user_created'、'user_password_updated'和'user_deleted'表,它们统一在一个'user' SQL VIEW中,显示用户的当前状态。
我应该如何在 Persistent 中使用 VIEW?我应该完全使用 Persistent - 它(对于 Haskell 具有讽刺意味)是否过于专注于我的用例的可变数据库?