搜索速度问题

wangyongli 2007-03-28 06:52:27
表结构
产品表:ProductInfo 关健字段 CorpID,ProductID
厂商表:Corporation 关健字段 CorpID
产品类别表:ProductType 关健字段 ProductID CategoryID
类别表:Category 关健字段 CategoryID parentID
产品对象表: ProductObject 关健字段 ProductID CategoryID
对象表:DictCode 关健字段 DictCode

产品表与厂商表是-对-的关系 关联字段是CorpID
产品表与产品类别表是一对多 关联字段是ProductID
(这里的类别表父子关系是在一个表里,有ParentID字段关联)
产品表与产品对象表也是-对多 关联字段也是ProductID

主键是char(36),都建有聚集索引.关联字段也都有索引. 现在搜索得很慢...



...全文
255 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2007-03-29
  • 打赏
  • 举报
回复
where 1=1 是个很糟糕的写法
---涛声依旧--- 2007-03-29
  • 打赏
  • 举报
回复
where 后面將主鍵、索引放在最左邊
等號左邊的字段最好不要加函數
---涛声依旧--- 2007-03-29
  • 打赏
  • 举报
回复
你應該去掉1=1(這樣的話你所有的索引不會起作用,當然慢了)
我痛恨那些程序員在前台偷懶的作法,如:為了少寫代碼而用where 1=1然後動態組合SQL語句
byhum 2007-03-29
  • 打赏
  • 举报
回复
索引也不要建 的太多
wangyongli 2007-03-29
  • 打赏
  • 举报
回复
排版,我晕了
wangyongli 2007-03-29
  • 打赏
  • 举报
回复
to wangtiecheng
我的主键都是newid()生成的char和varchar有影响吗?

我的搜索语句


Select DISTINCT a.ProductID,a.ProductName,a.ProductDesc,a.picbig,
a.Marketprice,a.memberprice,a.corpid,a.FlagRecommend,
b.corpnamec,a.FlagOOS,a.picsmall From
Productinfo a inner join
corporation b on a.corpid=b.corpid inner join
ProductType e on e.productid=a.productid inner join
category c on c.categoryid=e.categoryid inner join
category d on c.parentid=d.categoryid inner join
ProductObjectPurpose f on f.productid=a.productid
where 1=1 AND
(a.ProductName LIKE '%44%' OR c.CategoryName LIKE '%44%' OR a.ProductDesc LIKE '%44%' OR a.Technics LIKE '%44%' OR a.ProductNo LIKE '%44%' OR a.Brand LIKE '%44%' OR a.Material in (Select DictCode From DictCode Where DictName LIKE '%44%')) AND a.wholesaleprice >= 30 AND a.wholesaleprice <= 50
AND (c.ParentID='651ADE65-2DC4-48A2-B164-065F10415625' or c.categoryid='651ADE65-2DC4-48A2-B164-065F10415625' or d.ParentID='651ADE65-2DC4-48A2-B164-065F10415625')
AND (f.CategoryID='广告促销')
AND (DateDiff(day,a.DateAdd,getdate())<600 or a.ClickCount>0)
zsl5305256 2007-03-29
  • 打赏
  • 举报
回复
太多的关联,那速度肯定会慢了,把查询语句发出来看一下!
toddzst 2007-03-29
  • 打赏
  • 举报
回复
up
---涛声依旧--- 2007-03-29
  • 打赏
  • 举报
回复
你的查詢語句能否貼出來看看?
CathySun118 2007-03-28
  • 打赏
  • 举报
回复
应该是索引建不太好,优化一下吧
OracleRoob 2007-03-28
  • 打赏
  • 举报
回复
char(36)

-->

varchar(36)
lisiyong 2007-03-28
  • 打赏
  • 举报
回复
看表能不能再优化?
Zack999 2007-03-28
  • 打赏
  • 举报
回复
用索引优化向导
renjun24 2007-03-28
  • 打赏
  • 举报
回复
不懂,学习来了,帮顶吧

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧