我是索引的新手,并了解了索引的基础知识。我可以在相应表的索引部分中找到主键约束的默认聚集索引,但是在创建外键约束后我找不到任何。
现在我有一个要求,应该实施索引以提高性能。我已经阅读了关于索引外键以提高JOIN result的性能的内容。
我是否需要将外键列添加到其他非聚集索引或外键具有默认索引?
如果我的SQL 表结构如下,并且我有一个使用t1_col3 的WHERE 子句的JOIN 查询,我如何有效地实现索引
table1 table2
------ ------
t1_col1(pk) t2_col1(pk)
t1_col2 t2_col2
t1_col3 t2_col3
t1_col4 t2_col4
t2_col1(FK)
Run Code Online (Sandbox Code Playgroud) 我有 Table1 和 Table2,Table1 的 PK 是 Table2 的 FK。现在,当且仅当与 Table1 记录对应的 Table2 中的所有记录都有值时(如果任何字段值为空,则跳过),我需要从 Table1 中执行选择。
即,对于表 1 中的 id,表 2 中有多个子 id。在这些多个 id 中,如果某个特定字段对应于任何一个 id 为空,则应该跳过 select。
任何人请帮我为这个要求写一个 sql 查询。
我的存储过程如下,
-- Add the parameters for the stored procedure here
@FromDate datetime,
@ToDate datetime
--Select query
DECLARE @query nvarchar(max)
set @query='SELECT [col1]
FROM [Table1]
WHERE ([col2] BETWEEN '''+@FromDate+''' AND'''+@ToDate+''')'
execute sp_executesql @query
Run Code Online (Sandbox Code Playgroud)
执行此字符串查询会导致以下错误,
"从字符串转换日期和/或时间时转换失败。 "
哪位大神帮我解决一下...