小编Ore*_*reo的帖子

MySQL 中 SELECT 语句的默认记录顺序是什么?

假设您有以下表格和数据:

create table t (
    k int,
    v int,
    index k(k)
    ) engine=memory;

insert into t (k, v)
values (10, 1),
       (10, 2),
       (10, 3);
Run Code Online (Sandbox Code Playgroud)

发出select * from t where k = 10noorder by子句时,MySQL默认如何对记录进行排序?

mysql mysql-5 index order-by select

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

SQL Server“可疑”数据库?

当您有一个标记为 的数据库时,您会怎么做Suspect

从上次备份恢复?

请指教。

sql-server

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

缩小日志文件不会减小大小

我有一个数据库,它有一个350 MB 的数据文件(.mdf) 和一个4.9 GB 的日志文件(.ldf)。恢复模式设置为FULL.

当我尝试缩小日志文件时,它并没有缩小。

我知道缩小数据库不好,也不应该这样做。但我仍然试图缩小日志文件。

当我跑

DBCC SQLPerf(logspace) 
Run Code Online (Sandbox Code Playgroud)

我发现日志大小为4932 MB,使用的日志空间为98.76%

然后我尝试了这个命令

USE <databasename>;
DBCC loginfo;
Run Code Online (Sandbox Code Playgroud)

现在几乎所有的 VLF 都是“状态 2”,这意味着都在使用中。

我尝试进行日志备份,然后缩小日志文件。收缩并没有减小尺寸。

我将恢复模型更改为SIMPLE并再次尝试缩小,但这也无济于事。

我检查了未结交易

DBCC opentran (database);
Run Code Online (Sandbox Code Playgroud)

并发现现在没有交易打开。

是什么阻止我缩小日志文件?我该如何解决这个问题?

sql-server shrink dbcc database-size transaction-log

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

数据库用户上的 RED X 是什么意思?

图标上带有红色 X 的数据库中的用户

我创建了两个新的 AD 组并将它们添加为数据库的用户,但它们的图标显示为红色 X

这是什么意思?

sql-server ssms users

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

为什么“LOAD DATA INFILE”比普通的 INSERT 语句快?

我读过一篇文章,提到我们可以通过使用该语句实现每秒 60,000 次插入,该LOAD DATA IN FILE语句从 csv 文件中读取并将数据插入到数据库中。

为什么它应该与普通刀片不同?

编辑:
我通过只调用一个INSERT语句来减少往返:

INSERT INTO tblname
VALUES (NULL,2,'some text here0'),(NULL,2,'some text here1')
    ,(NULL,2,'some text here2'),(NULL,2,'some text here3')
    .....,(NULL,2,'some text here3000');
Run Code Online (Sandbox Code Playgroud)

那这个呢?

mysql bulk import

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

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

我想知道两件事:

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

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

sql-server sql-server-2008-r2 tempdb

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

如何将 PostgreSQL 从 8.4 版升级到 9.4 版?

我想将我的 PostgreSQL 从版本8.4升级到9.4

文件是不是很清楚,我。

  1. 如果进行升级,我会丢失旧数据库吗?
  2. 如果升级后丢失旧数据库,如何备份它们?
  3. 如何升级我的 psql?

我的 PostgreSQL 在CentOS 6.6服务器上运行。

postgresql upgrade postgresql-8.4 centos postgresql-9.4

18
推荐指数
1
解决办法
5万
查看次数

由于“客户端处理时间”很长,远程 SELECT 语句很慢,但本地速度很快

当连接到我们的生产服务器(SQL Server 2008,非常强大的机器)时,这个 SELECT 语句需要2 秒,吐回所有字段(总共 4 MB 数据)。

SELECT TOP (30000) *
FROM person
WITH(NOLOCK);
Run Code Online (Sandbox Code Playgroud)

从同一网络上的任何其他框(使用 SQL 身份验证或 Windows 身份验证连接),相同的查询需要1 分 8 秒

我正在使用这个非常简单的语句进行测试,以说明它不是索引问题或与查询相关的问题。(我们目前所有查询都存在性能问题......)

这些行成块出现,而不是一次全部出现。我立即得到我的第一行,然后等待超过 1 分钟让成批的行进来。

这是从远程框运行时查询的客户端统计信息:

Query Profile Statistics
  Number of INSERT, DELETE and UPDATE statements 0
  Rows affected by INSERT, DELETE, or UPDATE statements 0
  Number of SELECT statements  2
  Rows returned by SELECT statements 30001
  Number of transactions 0

Network Statistics
  Number of server roundtrips 3
  TDS packets sent …
Run Code Online (Sandbox Code Playgroud)

performance sql-server-2008 remote

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

聚集索引选择 - PK 还是 FK?

我有一个SQL Server 2014表,如下所示:

OrderId     int           not null IDENTITY --this is the primary key column
OrderDate   datetime2     not null
CustomerId  int           not null
Description nvarchar(255) null
Run Code Online (Sandbox Code Playgroud)

我团队中的一些人建议聚集索引应该在OrderId,但我认为CustomerId+OrderId将是更好的选择,原因如下:

  • 几乎所有查询都会查找WHERE CustomerId = @param,而不是OrderId
  • CustomerIdCustomer表的外键,因此使用聚集索引CustomerId应该会加快连接速度
  • 虽然CustomerId不是唯一的,但OrderId在索引中指定额外的列将确保唯一性(我们可以UNIQUE在这两列上创建聚集索引时使用关键字,以避免没有唯一性的开销)
  • 一旦数据被插入,CustomerId并且OrderId永远不会改变,所以这些行在初始写入后不会移动。
  • 数据访问通过默认请求所有列的 ORM 进行,因此当基于 的查询CustomerId进来时,聚集索引将能够提供所有列而无需任何额外工作。

是否CustomerIdOrderId做法的声音是最好的选择给出了上述?或者,OrderId它本身更好,因为它是一个单独的列,它本身就保证了唯一性?

目前,该表在 上有一个聚集索引,在 上有一个OrderId非聚集索引CustomerId,但它没有覆盖,所以由于我们使用的是 ORM …

sql-server clustered-index

11
推荐指数
1
解决办法
338
查看次数

如何将 TempDB 文件移动到不同的驱动器或文件夹?

如何将我的TempDB 数据或日志文件从现在的任何位置移动到不同的驱动器或文件夹

sql-server t-sql tempdb datafile

9
推荐指数
2
解决办法
5616
查看次数