小编mar*_*c_s的帖子

同步两个不同位置的两个 MySQL 数据库

我有两个相同的 MySQL 数据库,一个在内部服务器中,另一个在网络托管服务器中。我想每天使用内部服务器上的数据库更新 Web 主机上的数据库。有没有办法自动化这个过程,我该如何手动完成?如果我要手动完成,是否需要我在内部服务器上获取数据库的 SQL 转储,然后将其导入到 Web 主机上的数据库中?有人可以请教。

mysql data-synchronization

30
推荐指数
2
解决办法
16万
查看次数

长列如何影响性能和磁盘使用?

在我们当前的项目中,它经常发生,我们需要将列扩展几个字符。从varchar(20)varchar(30)等等。

在现实中,真正重要的有多少?这优化有多好?只允许 100 或 200 甚至 500 个字符用于正常的“输入”字段有什么影响?一封电子邮件只能有 320 个字符,所以可以 - 有一个很好的限制。但是如果我将它设置为 200,我会得到什么,因为我不希望电子邮件地址比这更长。

通常我们的表不会超过 100.000 行,最多 20 或 30 个这样的列。

我们现在使用 SQL Server 2008,但了解不同的数据库如何处理这个问题会很有趣。

如果影响非常低 - 正如我所期望的那样,这将有助于获得一些好的论据(有链接支持?)来说服我的 DBA,这种长期的偏执并不是真正必要的。

如果是的话,我是来学习的:-)

sql-server-2008 database-design datatypes

28
推荐指数
4
解决办法
2万
查看次数

如何查看加密视图或存储过程

我正在开发第三方数据库。

当我尝试通过右键单击查看视图的定义时,CREATE TO然后单击 ,NEW QUERY EDIT WINDOW出现错误:

此对象可能不存在此属性,或者可能由于访问权限不足而无法检索。文本已加密。

sql-server-2008 sql-server sql-server-2012

27
推荐指数
5
解决办法
10万
查看次数

为什么 LEN() 函数严重低估了 SQL Server 2014 中的基数?

我有一个带有字符串列的表和一个检查具有特定长度的行的谓词。在 SQL Server 2014 中,无论我检查的长度如何,我都会看到估计为 1 行。这产生了非常糟糕的计划,因为实际上有数千甚至数百万行,而 SQL Server 选择将此表放在嵌套循环的外侧。

对于 SQL Server 2014 的基数估计为 1.0003 而 SQL Server 2012 估计为 31,622 行,是否有解释?有没有好的解决方法?

以下是该问题的简短再现:

-- Create a table with 1MM rows of dummy data
CREATE TABLE #customers (cust_nbr VARCHAR(10) NOT NULL)
GO

INSERT INTO #customers WITH (TABLOCK) (cust_nbr)
    SELECT TOP 1000000 
        CONVERT(VARCHAR(10),
        ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS cust_nbr
    FROM master..spt_values v1
    CROSS JOIN master..spt_values v2
GO

-- Looking for string of a certain length.
-- While both CEs …
Run Code Online (Sandbox Code Playgroud)

sql-server varchar functions sql-server-2014 cardinality-estimates

26
推荐指数
2
解决办法
1486
查看次数

序列 - 无缓存 vs 缓存 1

SQL Server 2012+ 中SEQUENCE声明的 usingNO CACHE和声明的 using之间有什么区别CACHE 1吗?

序列#1:

CREATE SEQUENCE dbo.MySeqCache1
AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 1
    MAXVALUE 9999
    NO CYCLE
    CACHE 1;
GO
Run Code Online (Sandbox Code Playgroud)

序列#2:

CREATE SEQUENCE dbo.MySeqNoCache
AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 1
    MAXVALUE 9999
    NO CYCLE
    NO CACHE;
GO
Run Code Online (Sandbox Code Playgroud)

两者之间有什么区别吗?在 SQL Server 2012+ 环境中使用时,它们的行为会有所不同吗?

sql-server sequence sql-server-2012

25
推荐指数
1
解决办法
5250
查看次数

存储过程与原始查询的效率

我在这场辩论的双方都阅读了很多内容:仅使用存储过程而不是原始查询是否会显着提高性能?我对 SQL Server 特别感兴趣,但对任何和所有数据库都感兴趣。

performance sql-server-2008

23
推荐指数
3
解决办法
6900
查看次数

从 SQL Server 检索的数据是否经过压缩以进行传输?

从 Microsoft SQL Server 检索的数据是否被压缩?如果这是由连接字符串控制的,是否有任何简单的方法可以判断是否有任何特定应用程序正在使用它?

我正在检查分析工具,数据量可能需要几分钟才能通过我们的网络传输。我想知道如果我们从同一远程服务器上的压缩数据存储中提取数据,我是否应该期待性能提升。

只要我们讨论这个话题,我就很好奇:数据是用二进制还是 ASCII 传输?例如,如果12345INT列中查询值,是否将其作为五个字节0x31、0x32、0x33、0x34、0x35传输;该值所需的两个字节;或列所需的四个字节?

需要明确的是,我知道有一些关于压缩存储数据和备份数据的选项。我问的是数据是如何传输的。

sql-server-2008 compression

23
推荐指数
2
解决办法
1万
查看次数

我可以在 2008 服务器上使用 SQL Server Management Studio 2012 吗?

我的学校使用的是SQL Server 2008。上次我只安装了(在家里)SQL Server Management Studio 2008部分,并使用VPN连接到学校的服务器。

现在想重新安装SQL Server Management Studio,不过这次是2012版本。

SQL Server Management Studio 2012 是否适用于学校的 SQL Server 2008?还是我需要2008版本?

sql-server ssms

21
推荐指数
2
解决办法
5万
查看次数

如何判断 SQL Server 实际使用了多少内核?

我有两台运行 SQL Server 的服务器。

  • 服务器 1:SQL Server 2008 R2 Express(4 核)
  • 服务器 2:SQL Server 2012 开发版(8 核)

据我所知,SQL Server 2008 R2 Express 应该只使用一个核心。

SQL Server 2012 Developer 版本应使用所有 8 个内核。

但是,如果我在 SQL Server 2008 R2 Express 上的 SQL 查询中运行以下命令,它会显示 4 个内核。

select scheduler_id, cpu_id, status, is_online 
from sys.dm_os_schedulers 
where status = 'VISIBLE ONLINE'
Run Code Online (Sandbox Code Playgroud)

我是否使用正确的命令来衡量使用情况?

sql-server sql-server-2008-r2 sql-server-2012

21
推荐指数
1
解决办法
8万
查看次数

将具有许多连接的 SQL 查询拆分为较小的连接有帮助吗?

我们需要每晚在我们的 SQL Server 2008 R2 上做一些报告。计算报告需要几个小时。为了缩短时间,我们预先计算了一个表格。该表是基于 JOINining 12 个相当大(数千万行)的表创建的。

直到几天前,这个聚合表的计算才用了大约 4 个小时。我们的 DBA 将这个大连接拆分为 3 个较小的连接(每个连接 4 个表)。临时结果每次都保存到一个临时表中,供下次join使用。

DBA 增强的结果是,聚合表在 15 分钟内计算完成。我想知道这怎么可能。DBA 告诉我,这是因为服务器必须处理的数据数量较少。换句话说,在大的原始连接中,服务器必须处理比在总和较小的连接中更多的数据。但是,我认为优化器会使用原始大连接有效地执行此操作,自行拆分连接并仅发送下一个连接所需的列数。

他所做的另一件事是在其中一个临时表上创建了索引。但是,我再次认为优化器会在需要时创建适当的哈希表,并更好地优化计算。

我和我们的 DBA 讨论过这个问题,但他自己不确定是什么导致了处理时间的改善。他刚刚提到,他不会责怪服务器,因为计算如此大的数据可能会让人不知所措,而且优化器可能很难预测最佳执行计划...... 我明白这一点,但我想对确切原因有更多明确的答案。

所以,问题是:

  1. 什么可能导致大的改善?

  2. 将大连接拆分为小连接是标准程序吗?

  3. 在多个较小连接的情况下,服务器必须处理的数据量真的更小吗?

这是原始查询:

    Insert Into FinalResult_Base
SELECT       
    TC.TestCampaignContainerId,
    TC.CategoryId As TestCampaignCategoryId,
    TC.Grade,
    TC.TestCampaignId,    
    T.TestSetId
    ,TL.TestId
    ,TSK.CategoryId
    ,TT.[TestletId]
    ,TL.SectionNo
    ,TL.Difficulty
    ,TestletName = Char(65+TL.SectionNo) + CONVERT(varchar(4),6 - TL.Difficulty) 
    ,TQ.[QuestionId]
    ,TS.StudentId
    ,TS.ClassId
    ,RA.SubjectId
    ,TQ.[QuestionPoints] 
    ,GoodAnswer  = Case When TQ.[QuestionPoints] Is null Then 0
                      When TQ.[QuestionPoints] > 0 Then 1 
                      Else 0 End
    ,WrongAnswer …
Run Code Online (Sandbox Code Playgroud)

join sql-server optimization

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