标签: sql-server

需要将 SQL Server 迁移到 MySQL

我在 Windows 服务器上的 SQL Server 2008 上有一个数据库,我想将所有数据移动到 Ubuntu 服务器上的 MySQL 数据库。我尝试将 SQL Server 导入和导出向导与 MySQL ODBC 驱动程序一起使用,它可以正确访问两个数据库,但包含类型转换规范的 xml 文件不存在,而且规范太有限,我无法正确创建它们。有谁知道如何创建类型转换文件或从哪里获得更好的工具来传输这些数据?

mysql sql-server migration

22
推荐指数
2
解决办法
6万
查看次数

设置 varchar(8000) 的后果是什么?

由于 varchar 占用的磁盘空间与字段的大小成正比,有什么理由我们不应该总是将 varchar 定义为最大值,例如varchar(8000)在 SQL Server 上?

在创建表上,如果我看到有人在做varchar(100)我应该告诉他们不你错了你应该做什么varchar(8000)?

sql-server varchar

22
推荐指数
2
解决办法
3629
查看次数

多久备份一次master数据库?

BOL 中的建议相当模糊:

根据需要经常备份 master 以充分保护数据以满足您的业务需求。我们建议定期备份计划,您可以在大量更新后补充额外的备份。

如果你进一步冒险,你会发现这些细节:

导致 master 更新和需要进行备份的操作类型包括以下内容:

  • 创建或删除用户数据库。
  • 如果用户数据库自动增长以容纳新数据,
    master 不会受到影响。
  • 添加或删除文件和文件组。
  • 添加登录或其他与登录安全相关的操作。
  • 数据库安全操作,例如向数据库添加用户,不影响master。
  • 更改服务器范围或数据库配置选项。
  • 创建或删除逻辑备份设备。
  • 为分布式查询和远程过程调用 (RPC) 配置服务器,例如添加链接服务器或远程登录。

因此,如果我们所有的登录都是通过 Windows 组添加的,并且我们不对数据库进行任何其他更改,这是否意味着对 master 进行一次备份就足够了?

如果不是,master 数据库的标准备份间隔是多少?

sql-server backup sql-server-2008-r2

22
推荐指数
3
解决办法
5563
查看次数

禁止 SQL Server Management Studio 自动完成

有没有办法在键入查询时暂时禁止 SQL Server Management Studio 的自动完成?我不想完全禁用自动完成功能,只是说在输入特定单词时按住某个键,以免妨碍到它。

例如说我有以下查询

SELECT Foo, Foo2 FROM SomeTable
Run Code Online (Sandbox Code Playgroud)

当我输入Foo并点击空格键时,SQL Server Management Studio 的自动完成开始并完成Foo到FooBar.

sql-server-2008 sql-server ssms

22
推荐指数
2
解决办法
3万
查看次数

安全地移动和创建新的 tempdb 文件

我想知道两件事:

  • 您如何以最少的停机时间安全地移动 tempdb?
  • 您需要多少个 tempdb 文件?

每个内核是 1 个文件吗?那么四核 = 4 个 tempdb 文件,创建三个新文件?

sql-server sql-server-2008-r2 tempdb

22
推荐指数
3
解决办法
3万
查看次数

SQL Server 不会优化两个等效分区表上的并行合并连接

提前为非常详细的问题道歉。我已经包含了生成完整数据集以重现问题的查询,并且我正在 32 核机器上运行 SQL Server 2012。但是,我认为这不是 SQL Server 2012 特有的,并且我已将这个特定示例的 MAXDOP 强制为 10。

我有两个使用相同分区方案进行分区的表。在用于分区的列上将它们连接在一起时,我注意到 SQL Server 无法像预期的那样优化并行合并连接,因此选择使用 HASH JOIN 代替。在这种特殊情况下,我能够通过基于分区函数将查询拆分为 10 个不相交的范围并在 SSMS 中同时运行这些查询中的每一个来手动模拟更优化的并行 MERGE JOIN。使用 WAITFOR 精确地同时运行它们,结果是所有查询在原始并行 HASH JOIN 所用总时间的 40% 左右完成。

在等效分区表的情况下,有什么方法可以让 SQL Server 自行进行这种优化?我知道 SQL Server 通常可能会产生大量开销,以便并行执行 MERGE JOIN,但在这种情况下,似乎有一种非常自然的分片方法,开销最小。也许这只是优化器还不够聪明以识别的特殊情况?

以下是设置简化数据集以重现此问题的 SQL:

/* Create the first test data table */
CREATE TABLE test_transaction_properties 
    ( transactionID INT NOT NULL IDENTITY(1,1)
    , prop1 INT NULL
    , prop2 FLOAT NULL
    )

/* Populate table with pseudo-random data (the specific data doesn't …
Run Code Online (Sandbox Code Playgroud)

join sql-server partitioning

22
推荐指数
1
解决办法
6320
查看次数

使用 DTS 导入/导出向导导入数据时如何处理 FK 约束?

我正在尝试使用 SQL Server 导入和导出向导将数据从我的生产数据库复制到我的开发数据库,​​但是当我这样做时失败并出现错误“插入语句与外键约束冲突”我有超过 40 个表FK 约束,是否有一些简单的方法可以解决这个问题,而不必编写删除约束/添加约束脚本?

编辑:我刚刚发现在我正在运行的 SQL Server 的 Web 版中,DTS 不会让您保存包。

sql-server sql-server-2012

22
推荐指数
2
解决办法
6万
查看次数

CPU 利用率会影响外部 NUMA 访问的成本吗?

设想

假设我有一个带有 4 个套接字的 SQL Server,每个 NUMA 节点。每个插槽有 4 个物理内核。总共有 512 GB 的内存,因此每个 NUMA 节点有 128 GB 的 RAM。

密钥表被加载到第一个 NUMA 节点中。

题

假设我们从该表中读取了大量流量。如果拥有 NUMA 节点的插槽的所有物理内核的 CPU 利用率为 100%,这是否会对来自其他插槽的非本地 NUMA 访问成本产生负面影响?或者另一方面是非本地 NUMA 访问的成本与该套接字的繁忙程度无关?

我希望我的问题是有道理的。如果没有,请告诉我,我会尽力澄清。

背景

上周我们的生产服务器出现了数据库问题,我们处理的一些业务似乎比其他业务受到的影响更大。我们有一些逻辑读取的查询需要超过 1 分钟。我们查看了大约 60% 的整体 CPU 利用率。我们没有查看特定于套接字的 CPU 指标。I/O 指标是平均的。

sql-server memory numa

22
推荐指数
2
解决办法
1174
查看次数

是否可以强制优化器消除此分区视图中的不相关表?

我正在为大表测试不同的体系结构,我看到的一个建议是使用分区视图,将大表分解为一系列较小的“分区”表。

1 , 2 , 3 , 4

在测试这种方法时,我发现了一些对我来说没有多大意义的东西。当我过滤事实视图上的“分区列”时,优化器只查找相关表。此外,如果我过滤维度表上的那一列,优化器会消除不必要的表。

但是,如果我过滤维度的其他方面,优化器会在每个基表的 PK/CI 上寻找。

以下是相关查询:

select 
    od.[Year], 
    AvgValue = avg(ObservationValue)
from dbo.v_Observation o 
join dbo.ObservationDates od
    on o.ObservationDateKey = od.DateKey
where o.ObservationDateKey >= 20000101
    and o.ObservationDateKey <= 20051231
group by od.[Year];

select 
    od.[Year], 
    AvgValue = avg(ObservationValue)
from dbo.v_Observation o 
join dbo.ObservationDates od
    on o.ObservationDateKey = od.DateKey
where od.DateKey >= 20000101
    and od.DateKey <= 20051231
group by od.[Year];

select 
    od.[Year], 
    AvgValue = avg(ObservationValue)
from dbo.v_Observation o 
join dbo.ObservationDates od
    on o.ObservationDateKey = od.DateKey …
Run Code Online (Sandbox Code Playgroud)

sql-server partitioning sql-server-2014

22
推荐指数
2
解决办法
853
查看次数

在 SQL Server 中,为什么聚簇索引的向后扫描不能不使用并行性?

我一直在阅读有关 SQL Server 内部结构的文章,并且每本书或博客都提到了有关反向扫描的内容。

聚集索引的向后扫描不能使用并行性

唯一说某事的帖子是下面的这个帖子。这篇文章说 SQL Server 团队没有实现反向扫描所需的优化。https://www.itprotoday.com/sql-server/descending-indexes

由于叶级页面是使用双向链表链接的,我不明白为什么向后扫描与向前扫描不同。任何澄清真的很感激。

sql-server clustered-index

22
推荐指数
1
解决办法
901
查看次数