- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在数据库中定义了以下表
铺表
城市表
国家/地区表
地区
商店图片
这是我的选择查询
SELECT ShopName, Owner, CityName, CountryName,RegionName
FROM Shop S
INNER JOIN City CT ON CT.CityId=S.CityId
INNER JOIN Country CO ON CO.CountryId=CT.CountryId
INNER JOIN Region R ON CT.RegionId=R.RegionId
LEFT OUTER JOIN ShopImages SI ON S.ShopImageId=SI.Id
WHERE S.Banner like '%restaurant%' OR S.Description like '%restaurant%'
AND S.CityId=10 AND S.Active=1
As of now city table has around 3,000,000 records & Shop has 40,000,000 + records.
获取记录需要时间。所有的聚簇索引(主键)都已经定义好了。
I am trying to optimize with the help of DTA(Database Tuning Advisor). It suggest me to add the below index
CREATE NONCLUSTERED INDEX
[_dta_index_CITY_9_2098106515__K9_K20_K1_K2] ON [dbo].[CITY]
(
[COUNTRYID] ASC,
[REGIONID] ASC,
[CITYID] ASC,
[CITYNAME] ASC
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF)
ON [PRIMARY]
是否值得添加此索引?我可以采纳 DTA 的所有建议吗?它还建议添加一些统计信息。
如何更好地改进我的上述查询?
最佳答案
在分析索引时很难说 DTA 是错误的,因为我不知道数据分布而且确实如此,但是我添加的第一个索引超出了主键是SHOP.CityID
和 SHOP.Active
上的(可能是复合的)索引。
未经测试我不能给你任何绝对的信息,但这就是推理。
由于您基本上是在 SHOP
上进行过滤,并且没有在任何其他表上进行过滤,因此查询的繁重工作很可能是在 SHOP< 中过滤 5000 万行
。
如果数据库从任何其他表开始连接,未过滤的连接将导致针对 CITY
的 3M 行,并且从过滤 SHOP
开始很可能会导致相当大的结果少一点。编译器有充分的理由喜欢“更少”。
这是SHOP
上的过滤器;
WHERE S.Banner like '%restaurant%' OR S.Description like '%restaurant%'
AND S.CityId=10 AND S.Active=1
由于 LIKE
以 %
开头的查询基本上根本无法使用索引,因此您需要尽可能窄且快速的过滤由 S.CityId=10 AND S.Active=1
完成。如果您对这些进行索引,则其他两个条件将不需要扫描使用索引找到的多于几行,而不是扫描 - 可能 - 5000 万行。
我认为建议的索引会产生很大影响的唯一原因是如果 CITY
表有大量字段,索引将允许数据库读取较少的数据从磁盘到达字段。不是说是这样,而是只有尝试才能确定。
关于sql - 按照 DTA 的建议添加 NONCLUSTERED INDEX 会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041374/
我正在尝试打开一个 Stata .dta文件被压缩成 winrar在 R. 这是我的代码: library(foreign) setwd("C:/Users/ASUS/Desktop/Data on
我对 stata 比较陌生,我需要将几个 .dta 文件一起 append 到一个数据集中。 我有一个名为 2015 的文件夹,文件如下所示... jan_2015.dta feb_2015.dta
我有一个 10 GB .dta Stata 文件,我正在尝试将其读入 64 位 R 3.3.1。我正在使用大约 130 GB RAM(4 TB HD)的虚拟机,.dta 文件大约有 300 万行和 4
如果某个地方有一个简单的答案,我提前道歉。似乎是这样的事情,但我似乎无法通过搜索 SO 或通过谷歌搜索在帮助文件中找到它。 我现在正在处理一些几 GB 的数据集。它足以容纳我可以访问的集群节点之一的内
我目前正在导入 Stata -使用以下内容将 .dta 文件创建到 SAS 中: proc import datafile='myfile.dta' out=test dbms=dta replace
我正在处理一个大约 3.3 GB 的 Stata .dta 文件,所以它很大但不会太大。我对使用 IPython 很感兴趣,并尝试使用 Pandas 导入 .dta 文件,但发生了一些奇怪的事情。我的
不知道有没有人知道统计数据分析软件Stata中有一个Python包可以让你把numpy数组/recarrays保存成.dta格式。这确实会加快我现有系统中的几个步骤。 最佳答案 scikits.sta
我在数据库中定义了以下表 铺表 店铺编号 店名 所有者 横幅 标题 城市编号 ShopImageId 活跃 城市表 城市编号 城市名 国家/地区 地区编号 国家/地区表 国家/地区 国家名称 地区编号
有没有办法将dta文件转换为csv? 我的计算机上没有安装 Stata 版本,因此我无法执行以下操作: File --> "Save as csv" 最佳答案 令人难以置信的 Python 数据分析库
我正在尝试使用 pandas.read_stata 读取 Python 中的 Stata (.dta) 文件,但出现此错误: ValueError: Version of given Stata fi
我正在尝试使用我的电脑中现有的数据,即 .dta 文件。 我尝试使用以下命令在 R 中打开它: mydata> not a Stata version 5-12 .dta file 任何帮助将不胜感激
我希望通过 Python 将许多 .CSV 文件转换为 .DTA 文件的过程自动化。 .DTA 文件是由 Stata 统计语言处理的文件类型。 但是,我还没有找到解决这个问题的方法。 R 语言有 wr
我的问题。我有一个遗留的 Turbo Pascal 程序,仍在 MS DOS 上运行。原始来源已丢失,我需要处理在 .DTA 文件中找到的信息。 我真的很想从 .Net 访问这些信息,阅读和更新。第一
我已经从 USGS 网站下载了 .dat 格式的空间数据,我也无法在 textedit 中读取 - 它只是说“../ofr041189it03/vat.adf”。我熟悉 STATA、ArcGIS 和
我将 .dta(Stata 文件格式)导入到 R 中,但变量标签似乎没有随变量名称一起导入。 使用foreign::read.dta,我尝试了labels(df),但这只给我变量名;并且 str(df
我正在尝试使用 StataReader 将大型数据集从 Stata 13 导入 pandas。这在 pandas 0.13.1 上运行良好,但在我升级到 0.14.1 后,读取 .dta 文件的能力似
我试图用 Pandas 打开一个 dta 文件,但得到一个 UnicodeDecodeError: >>> import pandas as pd >>> pd.read_stata('/some/s
如何避免将 Stata 数据读入 R 时的编码问题? 我希望读取的数据集是 Stata 12 或 Stata 13 中的 .dta(在 Stata 在版本 14 中引入对 utf-8 的支持之前)。包
我想在 R 中读取 .dta 文件,以便将其转换为 .csv 文件。首先,我尝试使用 foreign 包这样做,但它报告: read.dta(file) 错误:不是 Stata 版本 5-12 .dt
我已使用复制事件将数据复制到 azure blob 容器。我能够使用它来使用 Blob 触发器触发我的 azure 函数。但是,我的要求是调用可以在 azure datafactory 管道中配置的
我是一名优秀的程序员,十分优秀!