我正在使用 SQL 服务器,创建我们数据库的人在我们最大的表上添加了很多索引。这些索引每个只包含一个字段。
对我来说,这些索引似乎几乎没有用,这是一个坏主意。
我担心的是删除部分或全部这些索引并影响我们实时系统的性能。无法在我们的测试系统上对此进行测试,因为我们的测试系统没有相同的负载或数据量。
就是想...
例如,我在 SQL 2012 中有一个表,我们可以将其称为“表”。里面有这样的物品,
Column
_one
_two
three_blah
four_blah
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这一点,
select * from Table order by Column
Run Code Online (Sandbox Code Playgroud)
结果是这样的
four_blah
one
three_blah
two
Run Code Online (Sandbox Code Playgroud)
因此,它根据删除前导下划线字符对项目进行排序。它不能只是盲目地删除下划线字符,因为下划线可能位于项目的中间。
例如这不起作用,
select Replace(Column, '_', '') from Table order by Replace(Column, '_', '')
Run Code Online (Sandbox Code Playgroud) 我有以下数据,
Year DRC DISP Id
0 140.21 0.00 5808
1 112.37 1.00 5808
0 140.21 0.00 5824
1 112.37 0.00 5824
Run Code Online (Sandbox Code Playgroud)
我想像这样旋转它,
Id DRC Year 0 DISP Year 0 DRC Year 1 DISP Year 1
5808 140.21 0.00 112.37 1.00
5824 140.21 0.00 112.37 0.00
Run Code Online (Sandbox Code Playgroud)
我试过这个,
SELECT *
FROM
(
SELECT Year, DRC, DISP, ID From OriginalDataTable
) AS SourceTable
PIVOT
(
max(DRC)
for Year IN ([0], [1])
) AS PivotTable;
Run Code Online (Sandbox Code Playgroud)
它以 DRC 为中心,但也不以 DISP 为中心。结果是这样的(0,1是DRC值)。我明白为什么会这样,但我如何以 DISP 为中心?
DISP Id …Run Code Online (Sandbox Code Playgroud) 我正在使用事务复制来复制我们的实时数据库。这基本上是为了在服务器出现故障的情况下备份我们的数据库。
复制的数据库是只读的,因此我对其进行了备份、恢复和测试。
我立即注意到标识列不起作用。
例如,原始模式是这样的:
CREATE TABLE [dbo].[Inspection](
[InspectionID] [int] IDENTITY(1,1) NOT NULL,
[CarID] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
然后,在复制的副本上,它看起来像这样:
CREATE TABLE [dbo].[Inspection](
[InspectionID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[CarID] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
这意味着标识列已禁用,对吗?
有没有办法解决这个问题并使这个数据库本身成为一个独立的副本?
另外,我注意到没有传播外键。我知道有一些设置,但是既然标识列被禁用(哪些是主键),传播外键是否会成为问题?
我正在设计一个系统,它将拥有一个 SQL Server 2012 中央数据库。
每个客户端都将使用合并复制来获取其数据的离线副本,以便在路上进行编辑。
如果我添加一个出版物,我可以向该出版物添加过滤器。我无法解决的事情是只有一组过滤器。
对于我拥有的每个客户,他们将有一组不同的过滤器来过滤仅与他们相关的数据。从安全的角度来看,这非常重要。
仅凭一份出版物如何实现这一目标?
如果我有一张这样的桌子,
CREATE TABLE [dbo].[StreetLight](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Description] [nvarchar](50) NOT NULL,
[Shape] [geometry] NOT NULL,
CONSTRAINT [PK_StreetLight] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
哪种结构最适合用于将路灯相关联地连接在一起。例如我有路灯 1、2、3、4、5、6,我想说路灯 6 和 2 是相关的。例如,他们可能在同一条街上。
我有哪些方法可以做到这一点?