我们的prod数据库中有下面的索引,我们在这个DB上看到了性能问题,特别是在这个表上,我想创建另一个非聚集索引,如下面的第二个create语句中所示,我的问题是在INCLUDE语句中有库仑和在CREATE语句中创建保持库仑名称的新索引有什么不同?对于这个场景,我是否看到了其他的性能问题和建议?
提前谢谢
CREATE NONCLUSTERED INDEX [ix_Incident_AgencyID_includes] ON [dbo].[Incident]
(
[AgencyID] ASC
)
INCLUDE
我有一个相当大的postgres表,有几十亿行。 但是,该表可以按一个列(type)进行分区 我们是否应该更喜欢: 包含两列的索引 create nonclustered index ix_index1 on table1(type, string_urn_id) 或条件索引 create nonclustered index ix_index1_alternative on table1(string_urn_id) WHERE type = 'type1'
create nonclustered index ix_index1_alternative2 on table1
到目前为止,我有一个大约有200万行的表。该表将继续增长,每个月将添加大约50万至060万行。
例如,我有如下查询:
select `importer_name`, ROUND(SUM(total_value_usd_exchange), 2) AS top15_usd
from `importer_bills`
WHERE year(bill_of_entry_date)=2020
AND
Month(bill_of_entry_date)=3
group by `importer_name`
order by ROUND(SUM(total_value_usd_exchange
我正在尝试决定在我正在设计的数据库中采用哪种方法。我将在表中添加一个ProcessedDate datetime null列。当记录未被处理时,它将是空的。那么,是否也值得拥有一个Processed bit not null default 0专栏呢?
使用以下查询:
select * from tablename where ProcessedDate is null
和
select * from tablename where Processed = 0
在所有条件都相同的情况下*,两个版本之间的性能差异是什么?
*:每个版本的表都有相应的索引。我不是在寻求关于创建什么指数的建议。我只想
我认为这个查询是一个糟糕的例子,使他们的应用程序崩溃了。
select oldurl,
newurl,
id,
dateadd
from jos_sh404sef_urls
where newurl <> ""
AND oldurl not like '%vmchk%'
AND newurl not like '%format=feed%'
AND newurl not like '%format=pdf%'
AND newurl not like
我对Server完全陌生。当前必须将表、索引、触发器等转换为Oracle。据我所知,在甲骨文中没有像INCLUDE这样的东西。如何将包含列的索引转换为Oracle索引?
CREATE NONCLUSTERED INDEX [index_name]
ON [dbo].[table_name] ([col1] ASC, [col2] ASC)
INCLUDE ([col3], [col4])
WITH (PAD_INDEX = OFF...
这是标准的Oracle语法:
CREATE INDEX index_name ON table_name (col1, col2
我的查询如下所示:
select cat1, cat3, cat4
sum(case when cat2='x' then val end) as sumValForX,
sum(case when cat2='y' then val end) as sumValForY
from your_table WHERE date between somedate and someotherdate AND mainname=somename
group by cat1, cat3, cat4
基本上,这是在cat2 1,3,4上对我的表
让我们考虑一个包含两个相关列的简单表:
bit IsDownloaded not null
datetime DateDownloaded null
我知道只有当IsDownloaded有一个值时,DateDownloaded才是1(这只是一个例子,我知道IsDownloaded不是必要的)。
在以下几个方面是否存在某些性能差异:
SELECT *
FROM files
WHERE IsDownloaded = 1
AND DateDownloaded IS NOT NULL
AND DateDownloaded > '2010-01-01'
和
SELE
我有一个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
我团队中的一些人建议聚集索引应该在OrderId上,但我认为CustomerId + OrderId是一个更好的选择,原因如下:
几乎所有的查询都是WHERE CustomerId = @p
目前,我正在尝试使用子句中的几个(3)查询一个表,如:
SELECT *
FROM table
WHERE
a IN (2884,5320)
AND
b IN ('a', 'b', 'c')
AND
c IN (1, 2, 3)
AND d='abcd'
AND date BETWEEN 0 AND 1383177599
该表的索引与index(a, b, c, d, date)类似
但是,当我对查询运行解释时,解释程序会显示没有适当的索引可使用。即使我是FORCE
有没有人可以帮助我如何创建索引,以便我的查询能够顺利执行。
目前,我有以下查询,它返回8k+或记录。但它需要2秒或更长时间才能完成。tblproduction上的当前记录是16million+
SELECT COUNT(fldglobalid) AS PackagesDone
FROM tblproduction
WHERE fldemployeeno = 'APD100401'
AND fldstarttime BETWEEN '2013-08-14 07:18:06' AND '2013-08-14 16:01:58'
AN
如果两列相等,我希望有一个快速查找。我尝试使用带有索引的计算列,但Server似乎没有使用它。如果我只使用一个静态填充的位列和一个索引,我就会得到预期的索引查找。
似乎还有其他类似的问题,但没有人关注为什么不使用索引。
试题表:
CREATE TABLE dbo.Diffs
(
Id int NOT NULL IDENTITY (1, 1),
DataA int NULL,
DataB int NULL,
DiffPersisted AS isnull(convert(bit, case when [DataA] is null and [DataB]
我设置了一个约束,将列completed标记为true,其他一些列必须有一个值。
但是,由于某些原因,当completed标记为true时,当我将指定的列留为空白时,约束不会发出任何抱怨。我还特意插入了NULL,一个指定的列,但仍然没有约束。
有什么想法吗?
CREATE TABLE info (
id bigserial PRIMARY KEY,
created_at timestamptz default current_timestamp,
posted_by text REFERENCES users ON UPDATE CASCADE ON DELETE CASCADE,
我有一个表格,price
CREATE TABLE `price` (
`price_id` int(11) NOT NULL AUTO_INCREMEMT,
`effective_date` date NOT NULL,
`min_quantity` int(11) NOT NULL,
`price` decimal(7,2) NOT NULL
) ENGINE=InnoDB;
这家商店只销售一种产品,一个小部件,这个表指定了该产品的价格作为所购买数量的函数(您购买的越多,价格就越便宜)。我们可以假设为了提高效率,所有的列都被编入了索引。列effective_date指定此价
如何优化此mysql查询:
SELECT *
FROM messages
WHERE toid='".$mid."'
AND fromid='".$fid."'
OR (toid='".$fid."' AND fromid='".$mid."')
AND subject != 'something'
order by id ASC LIMIT 0,5
我需要在一个页面中获得用户之间的消息。这个查询占用了大量的时间和服务器资源。
我有一个带有where子句的select查询: WHERE CONCAT(att.subjectId,'#',att.classId) IN ('132#100')。我已经在subjectId和classId上添加了一个复合索引,但是这些索引对这样一个动态列有什么用处吗?如果不是,是否可以在像CONCAT(att.subjectId,'#',att.classId)这样的动态列上创建一个列。
我很好奇创建Fetch Request模板与以编程方式创建NSFetchRequest相比是否会提高性能,所以我写了一些测试来衡量这一点。。
模拟器和iPhone (测量执行大量获取的时间间隔)的差异顺序相同:
just creating an NSFetchRequest: 4.399674
creating a Fetch Request Template: 0.501369
NSFetchRequest with field indexed: 0.407068
Fetch Request Template and field indexed:
我对索引有疑问,
我在customer表上使用CID索引,因为我正在查询这个表以及加入预订表。
模式预订表
Name Null? Type
----------------------------------------- -------- ----------------------------
BID NOT NULL NUMBER(16)
CID
在我的html页面上,用户可以选择输入文本字符串、复选标记选项或两者兼而有之。然后将这些数据放入显示数据的mysql查询中。
允许用户输入字符串这一事实意味着我在mysql查询中使用了LIKE函数。
如果我错了,请纠正我,但我相信LIKE函数可以大大降低查询速度。关于上面的语句,我想知道like函数中的空字符串是否会有不同,例如:
select * from hello;
select * from hello where name like "%%";
如果它真的有很大的不同(我相信这个数据库会变得更大),你对如何处理这个问题有什么想法。
我的第一个想法是,我将有两个查询:一
我继承了一个新的系统,我正在努力对数据进行一些改进。我正在努力改进这个表格,但似乎无法理解我的发现。
我有以下表结构:
CREATE TABLE [dbo].[Calls](
[CallID] [varchar](8) NOT NULL PRIMARY KEY,
[RecvdDate] [varchar](10) NOT NULL,
[yr] [int] NOT NULL,
[Mnth] [int] NOT NULL,
[CallStatus] [varchar](50) NOT NULL,
[Category] [varchar](100) N
我有一个包含3个索引列的表,它让saye col1, col2, col3,它们都是int
我的朋友说,如果column2的数据不那么真实(我的意思是它只有12,13,14和其他列有类似随机数的数据),那么将WHERE子句的条件放在第一列中会更快,因为mysql将首先从那个点开始填充数据!
所以基本上他说第二个更快
select * from my_table where col1=1 and col2=2 and col3=3
select * from my_table where col2=2 and col1=1 and col3=3
这是真的吗?我找不到关于这个问题的