implicit operator 与 explicit operator
在C#中,implicit operator 和 explicit operator 都用于用户定义的类型转换,但它们在转换方式和安全性上有重要区别。
在C#中,implicit operator 和 explicit operator 都用于用户定义的类型转换,但它们在转换方式和安全性上有重要区别。
原因在于每个扇区的物理字节数。
使用以下命令可以查看:
fsutil fsinfo sectorinfo c:LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 32768
PhysicalBytesPerSectorForPerformance : 32768
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
设备校准 : 已校准(0x000)
设备上的分区校准: 已校准(0x000)
无搜寻惩罚
支持剪裁
不支持 DAX
未精简预配这两个32768是导致sqlserver出错的原因。
解决方案就是执行以下命令:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t reg_multi_sz /d "* 4095" /f重启之后再查看结果:
LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 4096
PhysicalBytesPerSectorForPerformance : 4096
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
设备校准 : 已校准(0x000)
设备上的分区校准: 已校准(0x000)
无搜寻惩罚
支持剪裁
不支持 DAX
未精简预配 取消默认可查看任何数据库
DENY VIEW any DATABASE TO PUBLIC;赋予自己拥有管理权限的数据库的查看权限
ALTER AUTHORIZATION ON DATABASE::[Database] TO [User];注意:如果数据库已存在用户权限,则可能要删除后再操作
如果需要该用户可以使用SQL Profiler来跟踪SQL,则需要执行:
GRANT ALTER TRACE TO [USER]注意:此命令将使该用户跟踪所有SQL,包括未授权的数据库。