我即将在我的网站上创建一个简单的搜索工具,用户将输入大约2-4个关键字,这些关键字将在我的MS SQL数据库的表中的两列中搜索.一列是名为title的varchar(50),一列是名为description的varchar(2500).任何时候都有大约20,000-30,000条记录可供搜索.
关键字需要返回"最佳匹配" - 您知道在ebay等搜索页面上返回最接近匹配的类型.我想这样做的方式似乎有点幼稚 - 我以为我可以读取表中的所有30,000条记录并像这样对象:
public class SearchableObject
{
string Title {get; set;}
string Description {get; set;}
int MatchedWords {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
然后创建一个该对象的List,例如List遍历所有30,000条记录,填充List,找出匹配最多次的那些并返回前10个使用像
if Description.contains(keyword1);
Run Code Online (Sandbox Code Playgroud)
但是然后找出填充MatchedWords字段的字符串中出现的次数.
有没有办法在谷歌的应用程序引擎中释放内存?python中有垃圾收集器吗?
这似乎应该是我已经知道的东西.我们需要在事务中运行一堆sql更新,如果其中一个失败则回滚.我们还想打印状态消息,因为我们将运行大量这些消息.如果我使用通用编程语言,这将很简单.但我试图找到一个团队成员可以使用的解决方案,这只是SQL.她过去使用下面的模式在MS SQL Server中完成了这项工作.Oracle是否有一个等效的简单模式?
DECLARE @ErrorVar INT;
BEGIN TRANSACTION;
UPDATE MyTable1 SET MyColumn1 = 'JSMITH' where MyColumn1 = 'JOHN';
SET @ErrorVar = @@ERROR;
UPDATE MyTable2 SET MyColumn2 = 'JSMITH' where MyColumn2 = 'JOHN';
SET @ErrorVar = @ErrorVar + @@ERROR;
UPDATE MyTable SET LoginID = 'JSMITH' where LoginID = 'JOHN';
SET @ErrorVar = @ErrorVar + @@ERROR;
IF @ErrorVar <> 0
BEGIN
ROLLBACK TRANSACTION;
PRINT 'We had a problem with JSMITH and rolled back *****';
END;
ELSE
BEGIN
COMMIT TRANSACTION;
PRINT 'JSMITH Updated …Run Code Online (Sandbox Code Playgroud) 我们的Oracle 9i数据库中有一些物化视图,这些视图是很久以前由一个不再在这里工作的人创建的.是否有一种简单(或任何)方法来确定Oracle是否使用这些视图来提供查询?如果它们不再被使用,我们想要摆脱它们.但是我们不想发现这些观点是允许一些随机报告在不到几个小时内运行的事实.我梦想的答案就像是
SELECT last_used_date FROM dba_magic
WHERE materialized_view_name = 'peters_mview'
Run Code Online (Sandbox Code Playgroud)
更棒的是可以告诉我实际的SQL查询使用物化视图的东西.我意识到我可能不得不满足于此.
如果有一个需要10g的解决方案,我们很快就会升级,所以这些答案也会很有用.