根据完全不同数据库的结果集在一个数据库中选择记录的最有效方法

发布于 2024-08-14 17:02:42 字数 550 浏览 6 评论 0原文

我有 2 个完全独立的数据库 - 一个 MSSQL 和一个 Pervasive。由于我们的产品数据存储在 Pervasive 数据库中的方式,您无法轻松地运行查询来获取要在我们的网站上显示的产品信息和功能。

因此,我使用 DTS 包从 Pervasive 获取产品数据并对其进行处理,使其成为一个包含产品项 #(两个数据库的主键)以及产品功能的所有列的 MSSQL 表。查询我们的网站非常简单快捷。

Pervasive 数据库是 ERP 系统使用的数据库,因此它始终拥有每种产品的最新库存总额。现在,我需要找到一种最佳方法,根据从 MSSQL 数据库实时检索的记录,最有效地从 Pervasive 数据库中提取库存信息。

仅获取一种产品的库存信息没什么大不了的。我主要关心的是如何提取从 MSSQL 产品表查询返回的商品列表的库存数据,并使库存数据与正确的商品相匹配。

缓存 Pervasive 数据库中的所有库存数据将不起作用,因为我需要它是实时的。

除了为列表中的每个项目生成 SELECT 语句之外,提取这些数据最有效的选项是什么?如果可能的话,我希望它只是一个数据库调用。

谢谢。

I have 2 totally separate databases - one MSSQL and one Pervasive. Due to the way our product data is stored in the Pervasive database, you cannot easily run a query to get a products's information and features to display on our website.

So, using a DTS package I take the product data from Pervasive and process it so it is one MSSQL table with the product item # (primary key for both databases) and all of the columns for the product features. Very easy and fast to query for our website.

The Pervasive database is the one used by the ERP system, so it always has the most up-to-date inventory totals for each product. Now, I need to find the best way to most efficiently pull the inventory information from the Pervasive database based on the records retrieved from the MSSQL database on a real-time basis.

Getting just one product's inventory information is no big deal. My main concern is how to pull inventory data for a list of items returned from a query on the MSSQL product table and have the inventory data match up with the correct items.

Caching all of the inventory data from the Pervasive db won't work because I need it to be real-time.

What are the most efficient options for me to pull this data, besides generating SELECT statements for each item in the list? I would like it to only be one database call if possible.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

递刀给你 2024-08-21 17:02:42

为了从 SQL Server 访问不同数据库的数据,您必须首先创建一个 SQL Server 上的链接服务器实例,指向具有适当凭据/权限的其他数据库(本例中为普遍数据库)。 本文用于将 MySQL 链接到 SQL Server 2008,但步骤是一样的。

一旦完成,您就可以在 SQL Server 中编写查询,就像处理单个数据库一样。

In order to access data to a different database from SQL Server, you'd have to first create a linked server instance on SQL Server pointing to the other db (Pervasive in this example) with appropriate credentials/permissions. This article is for linking MySQL to SQL Server 2008, but the steps are the same.

Once that's in place, you can write queries in SQL Server as though you were dealing with a single database.

初心未许 2024-08-21 17:02:42

您能否在 MSSQL 中保留缓存并让 Pervasive 在库存水平发生变化时使用触发器更新它?

Could you keep a cache in MSSQL and have Pervasive update it using a trigger when the inventory level changes?

寄风 2024-08-21 17:02:42

我不太确定这是否适用,但在 MySQL 中,我使用 IN 运算符一次性提取大量数据(最多数千个)。

SELECT a,b,c FROM table WHERE id IN (123,234,345,456,...)

有时它确实可以减少需要发送的查询数量。

I'm not quite sure if this is applicable, but in MySQL, I've used the IN operator for pulling significant sets of data (up to thousands) at once.

SELECT a,b,c FROM table WHERE id IN (123,234,345,456,...)

It can at times really reduce the number of queries that need sent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文