我多年来一直在寻找这些信息,但似乎找不到它:
learn.microsoft.com上是否有任何文档提供了一个表,其中包含 SQL Server 和 LocalDB 的所有有效连接字符串参数、它们的有效参数值、它们的默认值及其含义?
我找到的只是一些教程和示例页面,但没有完整的参考页面。
我们一直在努力重启停电后关闭的数据库集群服务器。我们尝试过 systemctl 、 pg_ctl 和 pg_ctlcluster 命令,但我们总是遇到同样的错误。
目录“/var/lib/postgresql/11/main”不是数据库集群目录
在我们的配置文件(postgresql.conf)中提到了相同的路径:
data_directory = '/var/lib/postgresql/11/main'
我无法理解为什么我们会收到此错误,即使服务器在断电之前以相同的配置运行。
这是我们的生产服务器。
我输入这些命令的命令行是:
SQL Server 可用性组备份首选项。
\n我们的 AG 有 3 个节点。
\n我想在主数据库上进行完整备份和差异备份,在辅助数据库上进行日志备份。
\n当我配置“任何副本”时,所有副本的备份优先级均为 50,日志备份不在辅助副本上运行。
\n如果我确实喜欢辅助完整备份,则不会在主数据库上运行。
\n如何配置为仅在主数据库上进行完整/差异备份并仅在辅助数据库上进行日志备份?
\n我们希望将备份卸载到辅助副本的原因是为了提高主副本在高峰时段的性能。
\n我们当前的设置每 3 天进行一次完整处理,并在每天下班后进行比较,我们\xe2\x80\x99ve 每 15 分钟运行一次日志备份。它通过具有自定义 SP 的 SQL 代理作业\xe2\x80\x99s。
\n我在查询存储中强制执行计划。计划与每天运行一次的作业中的过程相关联。这项工作的步骤之一就是:
EXEC [schema].[LoadData]
Run Code Online (Sandbox Code Playgroud)
过程 [schema].[LoadData] 看起来像
TRUNCATE TABLE [schema].[Data];
INSERT INTO [schema].[Data]
([A1],
[A2],
.
.
.,
[A49]
)
SELECT *
,CURRENT_TIMESTAMP AS [Insert TimeStamp]
FROM [schema].[View]
Run Code Online (Sandbox Code Playgroud)
其中 view 是包含一些 CTE 并使用同义词的视图(连接到来自不同数据库的表)。
为了测试强制计划是否有效,我按照以下步骤操作:
EXEC [schema].[LoadData]EXEC [schema].[LoadData]问题为什么执行计划没有被强制?在“强制计划失败计数”列中为 0。
我在数据库中有一个使用临时文件的例程。但数据库的排序规则与临时数据库的排序规则不匹配。我无法更改数据库的排序规则,它是客户端数据库。我试过这个:
BEGIN
DECLARE @Collation sysname;
SELECT @Collation=collation_name FROM sys.databases WHERE name = DB_NAME();
CREATE TABLE #Resultaten
(Supplier smallint,
Productcode varchar(20) COLLATE @Collation;,...)
...
Run Code Online (Sandbox Code Playgroud)
但这行不通。
有没有办法将临时文件列的排序规则与当前数据库的排序规则相匹配?
我有一个数据库,其中架构是:
CREATE TABLE [dbo].[Student]([Id] [int] NULL,[Name] [varchar](255) NULL,[Mark] [int] NULL)
INSERT [dbo].[Student] ([Id], [Name], [Mark]) VALUES (1, N'Medi', 10)
INSERT [dbo].[Student] ([Id], [Name], [Mark]) VALUES (2, N'Ibra', 15)
INSERT [dbo].[Student] ([Id], [Name], [Mark]) VALUES (3, N'Simo', 20)
Run Code Online (Sandbox Code Playgroud)
所以查询select * from Student:
| ID | 姓名 | 标记 |
|---|---|---|
| 1 | 梅迪 | 10 |
| 2 | 伊布拉 | 15 |
| 3 | 西莫 | 20 |
但我希望第一行的标题如下所示:
| ID | 姓名 | 标记 |
|---|---|---|
| ID | 姓名 | 标记 |
| 1 | 梅迪 | 10 |
| 2 | 伊布拉 | 15 |
| 3 | 西莫 | 20 |
为了建立这个结果,
我已经通过INFORMATION_SCHEMA查询完成了此操作:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS …Run Code Online (Sandbox Code Playgroud) 我有这个功能get_department。函数内部有一个函数调用get_po_amount.
该get_po_amount函数不再存在,因此当我尝试创建 Main 函数时get_Department,出现错误“对象名称 get_po_amount 无效”。
有什么方法可以通过不在内部创建函数来创建该函数。
我也有同样的观点问题。在另一个视图中调用一个视图。
我创建这些函数只是为了展示一个示例,我需要在大型数据库上执行此操作。
CREATE FUNCTION [dbo].[GET_DEPARTEMNET]
(
@DEPTNO NVARCHAR(100)
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM [dbo].[dept] WHERE DEPTNO=(SELECT [dbo].[GET_PO_AMOUNT](@DEPTNO)))
GO
Run Code Online (Sandbox Code Playgroud) 我正在尝试进行一个遍历 varbinary 数据的查询。问题是我无法真正完成我想要实现的目标。关于该列,您应该了解的是 varbinary(50) ,并且出现的模式没有特定的书写顺序,这意味着每个前缀可以是任何位置,只要它有 3 个字节(0x000000) 第一个字节是前缀,第二个和第三个是值数据我想检查它是否在我喜欢的范围内。所有的数据都是这样写的。
我尝试过的:
DECLARE @t TABLE (
val VARBINARY(MAX)
)
INSERT INTO @t SELECT 0x00000100000000000000000000000000000000000000000000000000
INSERT INTO @t SELECT 0x00001000000000000000000000000000000000000000000000000000
INSERT INTO @t SELECT 0x00010000000000000000000000000000000000000000000000000000
INSERT INTO @t SELECT 0x00100000000000000000000000000000000000000000000000000000
INSERT INTO @t SELECT 0x00000f00000000000000000000000000000000000000000000000000
declare @pattern varbinary(max)
declare @pattern2 varbinary(max)
set @pattern = 0x0001
set @pattern2 = @pattern+0xFF
select @pattern,@pattern2
SELECT
*
FROM @t
WHERE val<@pattern
OR val>@pattern2
Run Code Online (Sandbox Code Playgroud)
这是完全失败的,如果我使用 4 个符号作为图案,图案最多可以精确到 2 个符号,只有当图案位于预定义位置时,它才会起作用。我已经尝试过这个和下面所有内容的组合。
WHERE CONVERT(varbinary(2), val) = 0xdata
Run Code Online (Sandbox Code Playgroud)
还有这个:
select *
from table …Run Code Online (Sandbox Code Playgroud) 我手头有一项任务是移动重建一个大表,以将 LOB 页面移动到 SQL Server 2017 Enterprise Edition 上的不同文件组。
我正在概念验证环境中测试脚本,我可以看到总共大约CREATE INDEX .. DROP_EXISTING=ON需要 6 小时。
CREATE UNIQUE CLUSTERED INDEX [PK_TABLE1]
ON [dbo].[TABLE1] ([Id] ASC)
WITH (DROP_EXISTING = ON , FILLFACTOR = 100, PAD_INDEX = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, IGNORE_DUP_KEY = OFF, DATA_COMPRESSION = NONE, STATISTICS_NORECOMPUTE = OFF, ONLINE = ON, MAXDOP=2)
ON PS_MOVE_HELPER_D59E24BC73414AA8A5FB2E5D8F93C3D8([Id] );
CREATE UNIQUE CLUSTERED INDEX [PK_TABLE1]
ON [dbo].[TABLE1] ([Id] ASC)
WITH (DROP_EXISTING = ON , FILLFACTOR = 100, PAD_INDEX = OFF, ALLOW_ROW_LOCKS …Run Code Online (Sandbox Code Playgroud) 我们使用SQL Server 2012标准版。有没有办法重建索引,尽量不造成数据表锁定,减少对性能的影响?
当我们重建索引时,会导致程序访问数据库超时。我希望避免或减少性能影响。
sql-server ×9
backup ×1
collation ×1
connectivity ×1
errors ×1
filegroups ×1
functions ×1
postgresql ×1
query-store ×1
ssms ×1
tempdb ×1
varbinary ×1