所以我在我的剧本中有这个循环:
false
基本上,我正在使用单词模板为数据库中的记录创建恶搞简历。该脚本可以工作,但它每5秒只创建大约2到3个简历,这是一个问题,因为我需要填充整个数据库(100万个欺骗记录)。
另外,它只会变得更长,因为在某些时候我会定制这个,所以模板不是随机的,而是迎合了这个人的行业,以及在每个简历中添加更多的数据(技能,参考资料等)。
我能做些什么来加快这个速度吗?
答案 0 :(得分:0)
第一步是确保您在PowerShell 3.0或更高版本下运行此脚本。办公室COM对象因PowerShell 2.0的性能不佳而闻名,如果不编辑脚本,它可能会运行得更快。
对于整个脚本,我会调整从SQL Server检索数据的部分。如评论所述,您可以将其转换为一个电话。
如果没有样本数据或知道$candList
中的文件真正包含哪些内容,您可以将脚本的上半部分设为:
$candData = Get-Content $candList -Raw | ForEach-Object {$_ -replace '\s',''}
$qry = "
SELECT personFistName,
LEFT(personFirstName, 1) AS personLastName,
personSurname,
CandidateAddress,
CandidateCity,
CandidatePostcode,
personMobileTelephone,
CandidateState
FROM tblCandidate
WHERE personID IN ($($candData -split ','));
"
$templateDir = Get-ChildItem ($ScriptPath + "Templates\Resumes\") | Get-Random -Count 1
$templateFile = $templateDir
$templateDir = ($ScriptPath + "Templates\Resumes\" + $templateDir)
$data = Invoke-SqlCmd -ServerInstance $ServerAddress -Database $DatabaseName -Query $qry
foreach ($row in $data) {
$lname = $row.personLastName
$firstname = $row.personFirstName
$surname = $row.personSurname
$Address1 = $row.CandidateAddress
$City = $row.CandidateCity
$Postcode = $row.CandidatePostcode
$Mobile = $row.personMobileTelephone
$State = $row.CandidateState